কম্পিউটার

C++ এ একটি বড় সংখ্যার প্রাইম ফ্যাক্টর


এই সমস্যায়, আমাদের একটি পূর্ণসংখ্যা দেওয়া হয়েছে N <=10^18। আমাদের কাজ হল সংখ্যার সমস্ত প্রাইম ফ্যাক্টর প্রিন্ট করা এবং সাথে সেখানে উপস্থিতির ফ্রিকোয়েন্সি।

সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,

Input: 100
Output: 2 2
   5 2
Explanation: prime factorization of 100 = 2 * 2 * 5 * 5.

এই সমস্যাটি সমাধান করার জন্য, আমাদের সংখ্যাটির মৌলিক গুণনীয়কগুলি খুঁজে বের করতে হবে এবং তারপরে তাদের ফ্রিকোয়েন্সি গণনা করতে হবে৷

এর জন্য, আমরা ফ্যাক্টর হিসাবে 2 এর ফ্রিকোয়েন্সি পরীক্ষা করব এবং সংখ্যাটিকে 2 দ্বারা ভাগ করব। তারপর 3 থেকে বর্গমূল n পর্যন্ত পরীক্ষা করব। প্রতিটি মৌলিক সংখ্যার ফ্রিকোয়েন্সি ভাগ করুন এবং বৃদ্ধি করুন যা সংখ্যাটির একটি গুণনীয়ক। এবং সংখ্যাটি 1 হয়ে গেলে থামুন। তারপর সেখানে ফ্রিকোয়েন্সি সহ সমস্ত প্রাইম প্রিন্ট করুন।

নীচের কোডটি আমাদের সমাধানের বাস্তবায়ন দেখায়,

উদাহরণ

#include <iostream>
#include <math.h>
using namespace std;
void factorize(long long n){
   int count = 0;
   while (!(n % 2)) {
      n/= 2;
      count++;
   }
   if (count)
      cout<<2<<"\t"<<count<<endl;
   for (long long i = 3; i <= sqrt(n); i += 2) {
      count = 0;
      while (n % i == 0) {
         count++;
         n = n / i;
      }
      if (count)
      cout<<i<<"\t"<<count<<endl;
   }
   if (n > 2)
   cout<<n<<"\t"<<1<<endl;
}
int main() {
   long long N = 21000;
   cout<<"The prime factors and their frequencies of the number "<<N<<" are \n";
   factorize(N);
   return 0;
}

আউটপুট

The prime factors and their frequencies of the number 21000 are
2   3
3   1
5   3
7   1

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

  2. n-এ মৌলিক সংখ্যা p-এর শক্তি বের করা! C++ এ

  3. C++ এ মিতব্যয়ী নম্বর

  4. C++ পেন্টাটোপ নম্বর