This
problem is a programming version of Problem 3 from projecteuler.net
The
prime factors of 13195 are 5, 7, 13 and 29.
What
is the largest prime factor of a given number N?
Input
Format
First line contains T, the number of test cases. This is followed by T lines each containing an integer N.
First line contains T, the number of test cases. This is followed by T lines each containing an integer N.
Output
Format
For each test case, display the largest prime factor of N.
For each test case, display the largest prime factor of N.
Constraints
1≤T≤10
10≤N≤1012
1≤T≤10
10≤N≤1012
Sample
Input
2
10
17
Sample
Output
5
17
First of all
I submitted this code and this code showed Time limit exceeded in test case 5.
So this is
not the most efficient code to find the largest prime factor of a given number.
/*****************************************************/
#include<stdio.h>
int isPrime(long long int n)
{
long long int i;
for(i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
long long int findLargestPrimeFactor(long long int n)
{
long long int counter=3;
while(n%2==0)
n/=2;
if(n==1)
return 2;
while(n!=1)
{
if(isPrime(n))
return n;
while(n%counter==0)
n/=counter;
counter+=2;
}
return counter-2;
}
int main()
{
int t;
long long int n;
scanf("%d",&t);
while(t--)
{
scanf("%lld",&n);
printf("%lld\n",findLargestPrimeFactor(n));
}
return 0;
}
/*****************************************************/
No comments:
Post a Comment