hdu2012——素数判定

对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x

#include <cstdio>+
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXN=3000;
bool prime[MAXN];
bool a[105];
void Init(){
    memset(prime,true,sizeof(prime));
    prime[0]=false;
    prime[1]=false;
    for(int i=2;i<=MAXN;i++){
        if(prime[i]){
            if(i*i>MAXN){
                continue;
            }
            for(int j=i*i;j<=MAXN;j+=i){
                prime[j]=false;
            }
        }
    }

    for(int i=-39;i<=50;i++){
        if(prime[i*i+i+41]){
            a[i+50]=true;
        }
    }
}
int main(void){
    Init();
    int x,y;
    while(~scanf("%d%d",&x,&y)){
        if(x==0 && y==0){
            break;
        }
        int i;
        for(i=x;i<=y;i++){
            if(a[i+50]){
                continue;
            }
            else{
                printf("Sorry\n");
                break;
            }
        }
        if(i==y+1){
            printf("OK\n");
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/westbrook1998/article/details/81164744