2710 Max Factor

来源:互联网 发布:mysql bool 编辑:程序博客网 时间:2024/06/10 05:19

Max Factor

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4383    Accepted Submission(s): 1437


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>using namespace std;int a[20000+5];int is_prime(int x){    for(int j=2;j<=x/2;j++)        if(x%j==0) return 0;    return 1;}int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        int b;        int max=0,s;        int prime=1;        for(int i=1;i<=n;i++)        {            scanf("%d",&b);            for(int j=b;j>0;j--)                if((b%j==0)&&is_prime(j))                {                    prime=j;                    break;                }               //  cout<<prime<<endl;                if(prime>=max)                {                    max=prime;                    s=b;                }        }        printf("%d\n",s);    }    return 0;}


0 0
原创粉丝点击