素数筛选2710

#include<iostream>
using namespace std;
int a[20000],label[5000];
//素数筛选
int main(){
    int n,max,j,t;
    while(cin>>n){
        max=-1;
        for(int i=0;i<n;i++){
            cin>>label[i];
            if(label[i]>max)
                max=label[i];
        }
            for(int i=1;i<=max;i++)
                a[i]=1;
            for(int i=2;i<=max;i++){                
                if(a[i]==1){
                    j=i;
                while(j<=max){
                    a[j]=i;
                    j+=i;
                }
                }
            }
            max=-1;
            for(int i=0;i<n;i++){
                if(a[label[i]]>max){
                    max=a[label[i]];
                    t=label[i];
                }
            }
            cout<<t<<endl;
        }
        return 0;
}
View Code
原文地址:https://www.cnblogs.com/wintersong/p/4387914.html