素数回文
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 10639 Accepted Submission(s): 2476
5 500
5 7 11 101 131 151 181 191 313 353 373 383
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
char s[12];
bool isprime(int n)
{
if(n==1) return false;
if(n==2) return true;
int c=(int)sqrt(n*1.0);
for(int i=2;i<=c+1;i++)
if(n%i==0)
return false;
return true;
}
int ishuiwen(int n){
int a[100];
int i,j;
i=0;
while(n!=0){
a[i]=n%10;
n=n/10;
i++;
}
j=0;
while(j<=i/2){
if(a[j]!=a[i-j-1])
return 0;
j++;
}
return 1;
}
int main()
{
int a,b,cnt;
int i,j;
while(scanf("%d %d",&a,&b)!=EOF)
{
for(i=a;i<=b&&i<=9989899;i++)
{
if(isprime(i)&&ishuiwen(i))
{
printf("%d\n",i);
}
}
printf("\n");
}
return 0;
}
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
char s[12];
bool isprime(int n)
{
if(n==1) return false;
if(n==2) return true;
int c=(int)sqrt(n*1.0);
for(int i=2;i<=c+1;i++)
if(n%i==0)
return false;
return true;
}
int ishuiwen(int n){
int a[100];
int i,j;
i=0;
while(n!=0){
a[i]=n%10;
n=n/10;
i++;
}
j=0;
while(j<=i/2){
if(a[j]!=a[i-j-1])
return 0;
j++;
}
return 1;
}
int main()
{
int a,b,cnt;
int i,j;
while(scanf("%d %d",&a,&b)!=EOF)
{
for(i=a;i<=b&&i<=9989899;i++) //9989899是这个范围内最大的回文素数
{
if(ishuiwen(i)&&isprime(i)) //先判断回文再判断素数
{
printf("%d\n",i);
}
}
printf("\n");
}
return 0;
}