View Code of Problem 92

#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.


Back to problem 92