এই বিভাগে, আমরা দেখব কিভাবে আমরা একটি সংখ্যার সবচেয়ে বড় মৌলিক গুণনীয়ক একটি দক্ষ উপায়ে পেতে পারি। n =1092 বলে একটি সংখ্যা আছে, আমাদের এটির বৃহত্তম মৌলিক গুণনীয়ক পেতে হবে। 1092-এর মৌলিক গুণনীয়ক হল 2, 2, 3, 7, 13। সুতরাং বৃহত্তম হল 13। এই সমস্যা সমাধানের জন্য আমাদের এই নিয়মটি অনুসরণ করতে হবে −
-
যখন সংখ্যাটি 2 দ্বারা বিভাজ্য হয়, তখন 2 কে বৃহত্তম হিসাবে সংরক্ষণ করুন এবং বারবার সংখ্যাটিকে 2 দ্বারা ভাগ করুন৷
-
এখন সংখ্যাটি বিজোড় হতে হবে। এখন সংখ্যাটির 3 থেকে শুরু করে বর্গমূল পর্যন্ত, সংখ্যাটি যদি বর্তমান মানের দ্বারা বিভাজ্য হয়, তাহলে ফ্যাক্টরটিকে বৃহত্তম হিসাবে সংরক্ষণ করুন এবং বর্তমান সংখ্যা দিয়ে ভাগ করে সংখ্যাটি পরিবর্তন করুন তারপর চালিয়ে যান৷
-
এবং পরিশেষে যদি সংখ্যাটি 2-এর বেশি হয়, তবে এটি 1 নয়, তাই সর্বাধিক মৌলিক গুণনীয়কটি পান৷
আরো ভালো ধারণা পেতে অ্যালগরিদম দেখি।
অ্যালগরিদম
getMaxPrimeFactors(n)
begin while n is divisible by 2, do max := 2 n := n / 2 done for i := 3 to √𝑛, 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<stdio.h>
#include<math.h>
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