寻找质因数

2014-11-23 22:21:47 · 作者: · 浏览: 0

描述 Description

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

输入格式 InputFormat

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

输出格式 OutputFormat

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

数据范围和注释 Hint

N <= 5000 , A_i <= 20000
举例 38和12
38=19*2
12=2*3*3
38最大的是19
12最大的是3
所以本数据要输出38



样例输入:

4
36
38
40
42

样例输出:

38


代码:

#include
#include
int a[5010];
int zhi(int n)
{
if(n==2) return 1;
for(int i=2;i<=sqrt(n);i++)
if(n%i==0) return 0;
return 1;
}
int yin(int n)
{
int c;
if(zhi(n)) return n;
for(int i=2;i if(n%i==0&&zhi(i)) c=i;
return c;
}
int main(int argc, char *argv[])
{
int n,i,max,l;
scanf("%d",&n);
for(i=0;i scanf("%d",&a[i]);
max=1;
for(i=0;i if(yin(a[i])>=max){
max=yin(a[i]); l=a[i];
}
printf("%d\n",l);
return 0;
}