回文质数

来源:互联网 发布:java环境变量配置linux 编辑:程序博客网 时间:2024/06/06 03:34

回文质数

时限:1000ms 内存限制:10000K 总时限:3000ms

描述:

因为151既是一个质数又是一个回文数(从左到右和从右到左看是一样的),所以151是回文质数.
写一个程序来找出范围[a,b](5<=a<b<=100,000,000)间的所有回文质数.

输入:

第一行 两个整数:a和b.

输出:

输出一个回文质数的列表,一行一个.

输入样例:

5 500

输出样例:

5711101131151181191313353373383

#include<iostream>using namespace std;int pal(int n);int prime(int n);int main(){int a,b,i,n;cin>>a>>b;if(a<12){for(i=a;i<12 && i<b;i++){if(prime(i)){cout<<i<<endl;}}}for(i=10;i<10000;i++){n=pal(i);if(n>=a&&n<=b){if(prime(n)){cout<<n<<endl;}}}}int pal(int n) //组成回文质数{int a;a=n/10;while(a!=0){n=a%10+n*10;a=a/10;}return n;}int prime(int n) //求素数{int i;if(n>2){if(n%2==0){return 0; //先排除2的倍数,使得运算量减半}for(i=3;i*i<=n;i=i+2){if(n%i==0){return 0;}}}else{if(n==1){return 0;}}return 1;}