Max Factor hdu2710

来源:互联网 发布:unity3d小游戏制作视频 编辑:程序博客网 时间:2024/06/05 07:09
Problem Description
To improve the organization of his farm, Farmer John labels each of his N (1 <= N <= 5,000) cows with a distinct serial number in the range 1..20,000. Unfortunately, he is unaware that the cows interpret some serial numbers as better than others. In particular, a cow whose serial number has the highest prime factor enjoys the highest social standing among all the other cows.

(Recall that a prime number is just a number that has no divisors except for 1 and itself. The number 7 is prime while the number 6, being divisible by 2 and 3, is not).

Given a set of N (1 <= N <= 5,000) serial numbers in the range 1..20,000, determine the one that has the largest prime factor.
 

Input
* Line 1: A single integer, N

* Lines 2..N+1: The serial numbers to be tested, one per line
 

Output
* Line 1: The integer with the largest prime factor. If there are more than one, output the one that appears earliest in the input file.
 

Sample Input
436384042
 

Sample Output
38
 


找到最大的素数因子

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#define maxn 20003using namespace std;int isPrime(int n){    int i;    int b = sqrt(n);    for(i = 2; i <= b; i++)        if(n % i == 0)            return 0;    return 1;}int pre_solve(int n){    int temp1=1;    for(int i=1;i<=n;i++)    {        if(n%i==0&&isPrime(i))        temp1=i;    }    return temp1;}int main(){    int ncase;    int num,ans,maxn1,temp;    while(~scanf("%d",&ncase))    {        temp=ans=maxn1=0;        while(ncase--)        {            scanf("%d",&num);            ans=pre_solve(num);            if(ans>temp)            {                temp=ans;                maxn1=num;            }        }        printf("%d\n",maxn1);    }    return 0;}


0 0