TYVJ P1020 寻找质因数

时间:2024-01-05 18:53:14

做题记录:2016-08-08

描述

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

输入格式

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

输出格式

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

测试样例1

输入


36 
38 
40 
42

输出

38

备注

N <= 5000 , A_i <= 20000

代码

 #include<iostream>
#include<cmath>
#include<cstdio>
#define N 20001
using namespace std;
int n,ans,mx;
bool a[N];
void primelist(){//筛法 ,0为质数
a[]=a[]=;
for(int i=;i<N;i++)
if(!a[i])
for(int j=i*;j<N;j+=i)
a[j]=;
} int main(){
freopen("01.txt","r",stdin);
primelist();
scanf("%d",&n);
for(int i=;i<=n;i++){
int x;
scanf("%d",&x);
for(int j=x;j>;j--){
if((x%j==&&!a[j])||j==){
if(j>mx){
mx=j;
ans=x;
}
break;
}
}
}
printf("%d",ans);
return ;
}