কম্পিউটার

C/C++ প্রোগ্রাম একটি সংখ্যার অনন্য মৌলিক গুণনীয়কের গুণফল খুঁজে বের করতে?


এই বিভাগে আমরা দেখব কিভাবে আমরা একটি সংখ্যার অনন্য মৌলিক গুণনীয়কের গুণফল একটি দক্ষ উপায়ে পেতে পারি। n =1092 বলে একটি সংখ্যা আছে, আমাদের এটির অনন্য মৌলিক গুণনীয়কগুলির গুণফল পেতে হবে। 1092 এর মৌলিক গুণনীয়কগুলি হল 2, 2, 3, 7, 13। তাই অনন্য মৌলিক গুণনীয়ক হল {2, 3, 7, 13}, গুণফল হল 546। এই সমস্যাটি সমাধান করার জন্য, আমাদের এই নিয়মটি অনুসরণ করতে হবে −

  • যখন সংখ্যাটি 2 দ্বারা বিভাজ্য হয়, তখন 2 কে গুণফল দিয়ে গুণ করুন এবং সংখ্যাটিকে 2 দ্বারা বারবার ভাগ করুন, তারপর পরবর্তী 2গুলি উপেক্ষা করা হবে৷

  • এখন সংখ্যাটি বিজোড় হতে হবে। এখন সংখ্যাটির 3 থেকে বর্গমূল পর্যন্ত শুরু করে, সংখ্যাটি যদি বর্তমান মান দ্বারা বিভাজ্য হয়, তাহলে গুণনীয়কটিকে গুণিতক হিসাবে গুণ করুন, এবং বর্তমান সংখ্যা দিয়ে ভাগ করে সংখ্যা পরিবর্তন করুন তারপর চালিয়ে যান। পরবর্তীগুলি উপরের মত উপেক্ষা করা হয়

  • এবং পরিশেষে যদি সংখ্যাটি 2-এর বেশি হয়, তবে এটি 1 নয়, তাই অবশিষ্ট সংখ্যাটিকে গুণ করুন৷

আসুন আরও ভাল ধারণা পেতে অ্যালগরিদম দেখি।

অ্যালগরিদম

ইউনিক প্রাইম প্রোডাক্ট(n)

begin
   prod := 1
   if n is divisible by 2, then
      prod := prod * 2
      n := n / 2
   end if
   while n is divisible by 2, do
      n := n / 2
   done
   for i := 3 to √𝑛, increase i by 2, do
      if n is divisible by i, then
         prod := prod * i
         n := n / i
      end if
      while n is divisible by i, do
         n := n / i
      done
   done
   if n > 2, then
      prod := prod * n
   end if
end

উদাহরণ

#include<stdio.h>
#include<math.h>
int uniquePrimeProduct(int n){
   int i, prod = 1;
   if(n % 2 == 0){
      prod *= 2;
      n = n/2;
   }
   while(n % 2 == 0){//skip next 2s
      n = n/2;
   }
   for(i = 3; i <= sqrt(n); i=i+2){ //i will increase by 2, to get only odd numbers
      if(n % i == 0){
         prod *= i;
         n = n/i;
      }
      while(n % i == 0){ //skip next i's
         n = n/i;
      }
   }
   if(n < 2){
      prod *= n;
   }
   return prod;
}
main() {
   int n;
   printf("Enter a number: ");
   scanf("%d", &n);
   printf("Product of prime factors: %d", uniquePrimeProduct(n));
}

আউটপুট

Enter a number: 1092
Product of prime factors: 546

  1. nম কাতালান নম্বরের জন্য C/C++ প্রোগ্রাম?

  2. একটি সংখ্যার বিজোড় গুণনীয়কের যোগফল খুঁজে বের করার জন্য C++ প্রোগ্রাম

  3. পাইথন প্রোগ্রামে একটি সংখ্যার অনন্য মৌলিক গুণনীয়কের গুণফল

  4. একটি সংখ্যার অনন্য মৌলিক গুণনীয়কের পণ্যের জন্য পাইথন প্রোগ্রাম