Euler problem #03: 600851475143 এর সর্বচ্চ প্রাইম factor (largest prime factor)

সমাধানঃ ২৪ এর ফ্যাক্টর 1,2,3,4,6,8,12,24 ,প্রাইম ফ্যাক্টর হবে 2,3 এবং largest prime factor হবে 3


#include <stdio.h>
int main()
{
long long number;
printf("Enter a number to know its largest prime factor: ");
scanf("%lld",&number);
long long div=2, maxFact;
while(number!=0){
if(number % div !=0)
div = div + 1;
else{
maxFact = number;
number = number / div;
if(number == 1){
printf("%d is the largest prime factor !",maxFact);
// ans = 1;
break;
} // end 2nd if
} // end else
} // end loop
return 0;
} // end main

এখানে long long ব্যাবহার করার কারন হচ্ছে 60085147143 int এর Range কে overflow করে ফেলবে। আমরা জানি int এর Range হচ্ছে 2^32 মানে ০ থেকে 4294967295 যা 600851475143 থেকে অনেক কম long long modifier int এর Range কে 16 বিট,16 বিট করে বাড়াবে, তখন number এর Range হবে 2^48। long int এর বা int এর range সাধারণত 32 bit ধরা হয়।
(long long int number আর long long number একই কথা)