33分求助

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

jywa @ 2024-08-18 20:04:57

这个代码只过了#1、#2和#6,其他全是TLE,请各位大佬帮忙指点一下

#include<bits/stdc++.h>
using namespace std;

bool isPrime(int n){
    if(n==0||n==1)return 0;
    else{
        for(int i=2;i<n;i++){
            if(n%i==0)return 0;
        }return 1;
    } 
}

bool isPalindrome(int num){
    int p=num;  
    int k=0;
    while(p!=0) {
        k=k*10+p%10;
        p=p/10;
    }if(k==num)return 1;
    else return 0;    
}

int main(){
    int a,b; 
    cin>>a>>b;
    for(int i=a;i<=b;i++){
        if(isPrime(i)&&isPalindrome(i))printf("%d\n",i);
    }return 0;
}

谢谢您们的帮助!!!


by hanxiaofensheng @ 2024-08-18 20:46:08

谢谢,让我看看 @hymcr05


by Mzh2012 @ 2024-08-18 21:07:27

6


by xizao_haoxuan @ 2024-08-18 21:12:15

要用质数筛 for(int i=2;i<=b;i++) { isprime[i]=1; } for(int i=2;i<=b;i++) { if(isprime[i]) { prime[cnt]=i; cnt++; } for(int j=1;j<=cnt&&iprime[j]<=b;j++) { isprime[iprime[j]]=0; if(i%prime[j]==0) { break; } } }


上一页 |