P1217 [USACO1.5] 回文质数 Prime Palindromes - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路 直接枚举 减枝优化判断
优化1 只有偶数才会是质数?
优化2 回文数的判断次数要优于检查素数?
先判断是否为回文数再检查是否为质数
if( hw(i)&&isprime(i))
这里有关于&&的条件 一但左边函数 为 0 右边函数 不再进行判断?
#include<iostream>
using namespace std;
int isprime(int x){
?? ?for(int i=3;i*i<=x;i+=2){
?? ??? ?if(x%i==0){
?? ??? ??? ?return 0;
?? ??? ?}
?? ?}
?? ?return 1;
?? ?
}
int hw(int x)
{
?? ?int res=0;
?? ?int before=x;
?? ?int t;
?? ?while(x){
?? ??? ?
?? ??? ?t=x%10;
?? ??? ?res=res*10+t;
?? ??? ?x/=10;
?? ?}
?? ??
?? ?if(res==before){
?? ??? ?return 1;
?? ?}else{
?? ??? ?return 0;
?? ?}
}
int main(){
?? ?int a,b;
?? ?cin>>a>>b;
?? ?if(a%2==0){
?? ??? ?a++;
?? ?}
?? ?for(int i=a;i<=b;i+=2){
?? ??? ?
?? ??? ?if( hw(i)&&isprime(i)){
?? ??? ??? ?printf("%d\n",i);
?? ??? ?}
?? ?}
?? ?
?? ?return 0;?
}