(Recall that a prime number is just a number that has no divisors except for 1 and itself. The number 7 is prime while the number 6, being divisible by 2 and 3, is not).
Given a set of N (1 <= N <= 5,000) serial numbers in the range 1..20,000, determine the one that has the largest prime factor.
* Lines 2..N+1: The serial numbers to be tested, one per line
题意:
求给出数据含有最大质数的数,然后输出包含最大质数的数,如果有多个,要输出最前面的那个数。
//以前用素筛只是简单的拿来快速判断一个数是不是素数,没想到还可以这样用,通过素筛,把每一个数的最大质数找出来
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int a[20050];
int main()
{
memset(a,0,sizeof(a));
a[1]=1;
for(int i=2; i<20010; i++)
{
if(a[i]==0)
{
for(int j=i; j<20010; j+=i)
a[j]=i;
}
}
int n,x,mx=-1,res;
while(cin>>n)
{
mx=-1;
for(int i=0; i<n; i++)
{
scanf("%d",&x);
if(a[x]>mx)
{
mx=a[x];
res=x;
}
}
cout<<res<<endl;
}
return 0;
}
4852



被折叠的 条评论
为什么被折叠?



