1. 程式人生 > >POJ 3048 線性篩法求素數

POJ 3048 線性篩法求素數

一個坑:
有組資料如下:
1
1

坑很深……

//By SiriusRen
#include <cstdio>
#define N 200000
using namespace std;
int n,mindiv[200050],prime[100000],top=0,xx,rec;
int main(){
    for(int i=2;i<=N;i++)
    {
        if(!mindiv[i])prime[++top]=mindiv[i]=i;
        for(int j=1;j<=top&&prime[j]*i<=N;j++)
        {
            mindiv[prime[j]*i
]=prime[j]; if(!(i%prime[j]))break; } } prime[0]=1; while(~scanf("%d",&n)) { int ans=0; while(n--) { scanf("%d",&xx); for(int i=0;prime[i]<=xx;i++) { if(!(xx%prime[i])&&ans<prime[i])ans=prime[i],rec=xx; } } printf
("%d\n",rec); } }

這裡寫圖片描述