做题记录:2016-08-08
描述
给出N个数字,试求质因数最大的数字。
输入格式
第一行,一个整数N,表示数字个数。
接下来N行,每行一个整数A_i,表示给出的数字。
输出格式
一个整数,表示质因数最大的数字。
测试样例1
输入
4
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 }
时间: 2024-10-10 22:21:48