কম্পিউটার টিউটোরিয়াল

C/C++ প্রোগ্রাম: একটি সংখ্যার ইউনিক প্রাইম ফ্যাক্টরগুলোর গুণফল বের করা


এই অনুচ্ছেদে আমরা দেখব কীভাবে একটি সংখ্যার ইউনিক প্রাইম ফ্যাক্টরগুলোর গুণফল দক্ষতার সাথে বের করা যায়। ধরা যাক একটি সংখ্যা n = 1092। আমাদের এর ইউনিক প্রাইম ফ্যাক্টরগুলোর গুণফল বের করতে হবে। 1092-এর প্রাইম ফ্যাক্টরগুলো হলো ২, ২, ৩, ৭, ১৩। সুতরাং ইউনিক প্রাইম ফ্যাক্টরগুলো হলো {২, ৩, ৭, ১৩}, গুণফল = ৫৪৬। এই সমস্যাটি সমাধানের জন্য নিচের নিয়মগুলো মেনে চলতে হবে −

    যখন সংখ্যাটি ২ দ্বারা বিভাজ্য, তখন ২ কে গুণফলে গুণ করুন এবং সংখ্যাকে ২ দিয়ে ভাগ করুন। এরপর আগামী ২গুলো উপেক্ষা করুন।

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

  • শেষে যদি সংখ্যা ২ থেকে বড় হয়, তবে অবশিষ্ট সংখ্যাটিও গুণ করুন।

ভালো ধারণার জন্য অ্যালগরিদমটি দেখি।

অ্যালগরিদম

uniquePrimeProduct(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 √n, 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 #include 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. সি/সি++ প্রোগ্রাম: nth ক্যাটালান সংখ্যা (Catalan Number)

  2. C++ প্রোগ্রাম: একটি নম্বরের অড ফ্যাক্টরগুলোর যোগফল বের করা

  3. পাইথনে সংখ্যার ইউনিক প্রাইম ফ্যাক্টরগুলোর গুণফল বের করা

  4. পাইথন প্রোগ্রাম: একটি সংখ্যার অনন্য প্রাইম ফ্যাক্টরের গুণফল বের করা