POJ3048

素数筛,数据范围不大,直接暴力筛。

:有个数据是 1 1,答案是1.差点没把我卡去世。

我的三观哪去了。

#include<iostream>
#include<cstdio>
#include<utility>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxp=2e4+5,maxn=5e3+5;
int fac[maxp],a[maxn];
int main()
{
    int n;
    std::ios::sync_with_stdio(false);
    cin>>n;
    int maxpp=0;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        maxpp=max(maxpp,a[i]);
    }
    fac[1]=1;
    for(int i=2;i<=maxpp;i+=2)fac[i]=2;
    for(int i=3;i<=maxpp;i+=2)
        if(!fac[i])
        for(int j=i;j<=maxpp;j+=i)
            fac[j]=i;
    int maxi;
    for(int zp,maxx=0,i=1;i<=n;i++)
    {
        zp=a[i];
        if(fac[zp]>maxx)maxx=fac[zp],maxi=zp;
    }
    printf("%d",maxi);
    return 0;
}

 

posted @ 2020-06-10 11:37  Star_Cried  阅读(160)  评论(0编辑  收藏  举报