poj 3048(筛素数法)

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int prime[20005];
void init(){
    int i,j;
    memset(prime,0,sizeof prime);
    prime[1] = 1;
    for(i=2;i<=20000;i++){
        if(prime[i]==0){
            for(j=i;j<=20000;j+=i){
                prime[j] = i;
            }
        }
    }
}
int main(){
    int n,maxn,t,ans;
    init();
    scanf("%d",&n);
    maxn = -1;
    while(n--){
        scanf("%d",&t);
        if(prime[t]>maxn){
            maxn = prime[t];
            ans = t;
        }
    }
    printf("%d\n",ans);    
    return 0;
}

 

posted @ 2021-08-16 19:13  智人心  阅读(80)  评论(0)    收藏  举报