约翰的农场开始渐入正轨了,因为他给每头奶牛贴上了清晰的序列号标签。不幸的是,奶牛们私下里认为有一些序列号比较好,一头牛的序列号如果有比其他奶牛都高的素因子,那它就有最高的社会地位。
现在给出N个序列号,每个序列号的范围在1-20000之间,请编程确定谁有最大的素因子。如果没有素因子,则输出0。
第1行一个正整数N,1<=N<=5000。
第2-N+1行,每行一个正整数,表示一个序列号。
一行一个正整数,表示具有最大素因子的序列号。如果有多个这样的序列号,则输出输入数据中较早输入的数。
4 36 38 40 42
38
#include<iostream>
using namespace std;
long long n,x,ma,a[100005],mai,s;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
x=a[i];
for(int j=2;j<a[i];j++)
{
s=0;
if(x%j==0)
{
if(j>ma)
{
for(int k=2;k<j;k++)
{
if(j%k==0) s++;
}
if(s==0)
{
ma=j;
mai=i;
}
else continue;
}
x=x/j;
}
}
}
cout<<a[mai];
return 0;
}
三十分求助!!