喵呜难过

P1217 [USACO1.5] 回文质数 Prime Palindromes

lucy2012 @ 2024-08-14 14:54:13

33分,感觉是判断质数那里错了喵。。

#include<bits/stdc++.h>
using namespace std;
long long a,b,cnt=4,prime[10000010];
bool pri(int x){
    int tmp=1;
    for(int i=2;i*i<=x;i++){
        if(x%i==0){
            tmp=0;
            break;
        }
    }
    return tmp;
}
int main(){
    prime[1]=2;
    prime[2]=3;
    prime[3]=5;
    prime[4]=7;
    for(int i=1;i<=9;i+=2){
        if(pri(i+10*i)){
            prime[++cnt]=i+10*i;
        }
    }
    for(int i=1;i<=9;i+=2){
        for(int j=0;j<=9;j++){
            if(pri(i+10*j+100*i))
                prime[++cnt]=i+10*j+100*i;
        }
    }
    for(int i=1;i<=9;i+=2){
        for(int j=0;j<=9;j++){
            if(pri(i+10*j+100*j+1000*i)) 
                prime[++cnt]=i+10*j+100*j+1000*i;
        }
    }
    for(int i=1;i<=9;i+=2){
        for(int j=0;j<=9;j++){
            for(int k=0;k<=9;k++){
                if(pri(i+10*j+100*k+1000*j+10000*i))
                    prime[++cnt]=i+10*j+100*k+1000*j+10000*i;
            }
        }
    }
    for(int i=1;i<=9;i+=2){
        for(int j=0;j<=9;j++){
            for(int k=0;k<=9;k++){
                if(i+10*j+100*k+1000*k+10000*j+100000*i)
                    prime[++cnt]=i+10*j+100*k+1000*k+10000*j+100000*i;
            }
        }
    }
    for(int i=1;i<=9;i+=2){
        for(int j=0;j<=9;j++){
            for(int k=0;k<=9;k++){
                for(int q=0;q<=9;q++){
                    if(i+10*j+100*k+1000*q+10000*k+100000*j+1000000*i)
                        prime[++cnt]=i+10*j+100*k+1000*q+10000*k+100000*j+1000000*i;
                }
            }
        }
    }
    for(int i=1;i<=9;i+=2){
        for(int j=0;j<=9;j++){
            for(int k=0;k<=9;k++){
                for(int q=0;q<=0;q++){
                    if(i+j*10+k*100+q*1000+q*10000+k*100000+j*1000000+i*10000000)
                        prime[++cnt]=i+j*10+k*100+q*1000+q*10000+k*100000+j*1000000+i*10000000;
                }
            }
        }
    }
    for(int i=1;i<=9;i+=2){
        for(int j=0;j<=9;j++){
            for(int k=0;k<=9;k++){
                for(int q=0;q<=9;q++){
                    for(int w=0;w<=9;w++){
                        if(i+j*10+k*100+q*1000+w*10000+q*100000+k*1000000+j*10000000+i*100000000)
                            prime[++cnt]=i+j*10+k*100+q*1000+w*10000+q*100000+k*1000000+j*10000000+i*100000000;
                    }
                }
            }
        }
    }
    cin>>a>>b;
    for(int i=1;i<=cnt;i++){
        if(prime[i]>=a&&prime[i]<=b){
            cout<<prime[i]<<endl;
        }
        if(prime[i]>b)
            break;
    }
    return 0;
}

by Quartz_Blocks @ 2024-08-14 14:57:57

@lucy2012 太暴力了吧.....


by lucy2012 @ 2024-08-14 14:58:37

@Quartz_Blocks 题目不是让我这么写喵?


by SerenityWay @ 2024-08-14 14:59:21

质数判断好像没错


by z_z_b_ @ 2024-08-14 15:00:21

@lucy2012 判质数没错,不过好暴力好可怕啊喵~


by cqbzpyl @ 2024-08-14 15:00:26

@lucy2012 建议重构(被喵烦了


by z_z_b_ @ 2024-08-14 15:01:13

咝不对,你后面没有判断是否是质数


by lucy2012 @ 2024-08-14 15:01:38

@z_zb 哦哦哦!


by lucy2012 @ 2024-08-14 15:01:58

@z_zb wssm(我是傻猫)


by z_z_b_ @ 2024-08-14 15:02:35

喵~


by lucy2012 @ 2024-08-14 15:03:32

@z_zb ac辣


| 下一页