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

C প্রোগ্রাম: একটি সংখ্যার সর্বোচ্চ প্রাইম ফ্যাক্টর বের করা


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

    যখন সংখ্যাটি ২ দ্বারা বিভাজ্য, তখন ২ কে সর্বোচ্চ হিসেবে স্টোর করুন এবং সংখ্যাকে ২ দিয়ে বারবার ভাগ করুন।

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

  • অবশেষে যদি সংখ্যা ২ থেকে বড় হয়, তবে সেটিই সর্বোচ্চ প্রাইম ফ্যাক্টর।

স্পষ্ট ধারণার জন্য অ্যালগরিদমটি দেখে নেওয়া যাক।

অ্যালগরিদম

getMaxPrimeFactors(n)

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

উদাহরণ

#include #include int getMaxPrimeFactor(int n) { int i, max = -1; while(n % 2 == 0) { max = 2; n = n/2; //reduce n by dividing this by 2 } for(i = 3; i <= sqrt(n); i=i+2){ //i will increase by 2, to get only odd numbers while(n % i == 0) { max = i; n = n/i; } } if(n > 2) { max = n; } return max; } main() { int n; printf("Enter a number: "); scanf("%d", &n); printf("Max prime factor: %d", getMaxPrimeFactor(n)); }

আউটপুট

Enter a number: 24024 Max prime factor: 13

  1. পাইথনে প্রাইম নম্বর খুঁজে বের করার বিভিন্ন পদ্ধতি

  2. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে বড় সংখ্যা বের করা

  3. পাইথনে লিস্ট থেকে সর্বোচ্চ সংখ্যা বের করা

  4. পাইথনে একটি সংখ্যার সর্বোচ্চ质因数 বের করার প্রোগ্রাম