TYVJ P1020 寻找质因数

做题记录:2016-08-08 

描述

给出N个数字,试求质因数最大的数字。

输入格式

第一行,一个整数N,表示数字个数。
接下来N行,每行一个整数A_i,表示给出的数字。

输出格式

一个整数,表示质因数最大的数字。

测试样例1

输入


36 
38 
40 
42

输出

38

备注

N <= 5000 , A_i <= 20000

代码

 1 #include<iostream>
 2 #include<cmath>
 3 #include<cstdio>
 4 #define N 20001
 5 using namespace std;
 6 int n,ans,mx;
 7 bool a[N];
 8 void primelist(){//筛法 ,0为质数 
 9     a[0]=a[1]=1;
10     for(int i=2;i<N;i++)
11         if(!a[i])
12             for(int j=i*2;j<N;j+=i)
13                 a[j]=1;
14 }
15 
16 int main(){
17     freopen("01.txt","r",stdin);
18     primelist();
19     scanf("%d",&n);
20     for(int i=1;i<=n;i++){
21         int x;
22         scanf("%d",&x);
23         for(int j=x;j>0;j--){
24             if((x%j==0&&!a[j])||j==1){
25                 if(j>mx){
26                     mx=j;
27                     ans=x;
28                 }
29                 break;
30             }
31         }
32     }
33     printf("%d",ans);
34     return 0;
35 }

 

posted @ 2016-08-11 16:27  Radiumlrb  阅读(524)  评论(2编辑  收藏  举报