#include<stdio.h>
#include<math.h>
int pdhw(int n)
{
int s[10];
int i = 0;
int j = 0;
int c= 0;
int sum = 0;
int temp=n;
while(n){
s[i]=n%10;
i++;
n/=10;
}
for(j=0;j<i;j++){
sum += s[c]*pow(10,j);
c++;
}
// printf("%d\n",sum);
if(sum==temp){
return 1;
}
else{
return 0;
}
}
int main(){
int n,m;
scanf("%d %d",&n,&m);
int i = 0;
int j = 0;
for(i = n;i<=m;i++){
for(j = 2;j<i;j++){
if(i%j==0){
break;
}
else if(i==j){
printf("%d",i);
if(pdhw(i)==1){
printf("%d",i);
}
}
}
}
}
为什么得不到回文质数
代码修改如下
#include <stdio.h>
#include <math.h>
int pdhw(int n)
{
int s[10];
int tmp = n; //记录n的值
int i = 0;
int j = 0;
int c= 0;
int sum = 0;
while(n){
s[i]=n%10;
i++;
n/=10;
}
for(j=0;j<i;j++){
sum += s[c]*pow(10.0,i-j-1);
c++;
}
if(sum==tmp){ //修改2,跟tmp进行比较
return 1;
}
else{
return 0;
}
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int i=0;
int j = 0;
for (i=n;i<=m;i++)
{
for (j=2;j<i;j++)
{
if(i%j ==0)
break;
}
if(i == j && pdhw(i))
{
printf("%d ",i);
//if(pdhw(i)==1)
// printf("%d ",i);
}
}
return 0;
}