#include<stdio.h> #include<math.h> #include<string.h> int sushu(int a); int huiwen(int a); int sushu(int a){ for(int i=2;i<=sqrt(a);i++){ if(a%i==0) return 0; } return 1; } int huiwen(int a){ //判断是否为回文数大致思路就是将一个数反着排列一遍,如果和原先的数一样, int temp=a; //那么就是bai文数。这个排列过程用到了余数和整除。 int s=0; //比如986,经过排列后为689,就不是回文数 while(temp){ s=s*10+temp%10; temp=temp/10; } if(s==a) return 1; else return 0; } int main(){ int m,n; int count=0; scanf("%d %d",&m,&n); for(int i=m;i<=n;i++){ if(sushu(i)==1&&huiwen(i)==1){ count++; printf("%6d",i); if(count%5==0) printf("\n"); } } //%-6d //输出字符串占6列,若字符串本身长度大于6,则将数字全部输出,若数字本身长度小于6,则右补空格 //%6d //输出字符串占6列,若数字本身长度大于6,则将字符串全部输出,若数字本身长度小于6,则左补空格 } |
Double click to view unformatted code.