题目:http://hustoj.sinaapp.com/problem.php?id=1834
求既是回文数又是质数的数
思路:先求出100000以内的所有质数,然后判断回文数再判断质数
#include<stdio.h> int p[100000]={2}; int num; int reverse(int n) { int t=0; if(n>=10) { while(n>0) { t=t*10+n%10; n/=10; }return t; } else return n; } int prime() { int counter=1; for(int i=3;i<=100000;i+=2) { for(int j=2;;j++) { if(i%j==0) break; if(j*j>i) { p[counter++]=i; break; } } } return counter; } int isprime(int n) { for(int i=0;i<num&&p[i]<n;i++) { if(n%p[i]==0) return 0; } return 1; } int main() { int a,b; scanf("%d%d",&a,&b); num=prime(); if(a%2==0) a+=1; for(int i=a;i<=b&&i<10000000;i+=2) { if(reverse(i)==i) { if(isprime(i)) printf("%d\n",i); } } return 0; }
转载于:https://www.cnblogs.com/danielqiu/archive/2012/12/29/2839210.html