#include<stdio.h> #include<math.h> int main() { int m,n; int k,a,flag1,flag2; int str[1000],t = 1;//将满足条件的回文素数装入数组 scanf("%d %d",&m,&n); for(int i = m;i <= n; i++) { a = 0; k = i; flag1 = 1; flag2 = 1; while(k>0){//判断是不是回文 a = a * 10 + k % 10; k = k / 10; } if(a == i){ flag1 = 0; } for(int j = 2;j <= sqrt(i); j++){//判断是不是素数 if(i % j == 0){ flag2 = 0; } } if(flag1 == 0&&flag2 == 1){//如果两者都是那么将他放进数组中 str[t++] = i;//***特别注意这里t始终是往后移动一格,并且设置t初始值为1 } } for(int i = 1;i < t; i++)//将str[1]~str[t-1]的所有数输出 { if(i % 5 !=0) printf("%6d",str[i]); else printf("%6d\n",str[i]); } return 0; } |
Double click to view unformatted code.