[USACO1.5]回文质数 Prime Palindromes

题目描述

因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。

写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)( 一亿)间的所有回文质数;

输入输出格式

输入格式:

第 1 行: 二个整数 a 和 b .

输出格式:

输出一个回文质数的列表,一行一个。

输入输出样例

输入样例#1:
5 500
输出样例#1:
5
7
11
101
131
151
181
191
313
353
373
383










#include<stdio.h>
#include<math.h>
bool c[10000000];
int main(){
    int k,j,a,b,i;
	scanf("%d%d",&a,&b);
	if (b>9999999) b=9999999;
	for (i=2;i<=int (sqrt(b));i++)
	    if (!c[i])
	        for (j=i*i;j<=b;j=j+i)
	            c[j]=1;
	for (i=a;i<=b;i++){
		k=i;j=0;
		while (k){
		    j=j*10+k%10;
		    k=k/10;
	    }
	    if ((!c[i])&&(i==j))
	        printf("%d\n",i);
    }
    return 0;
}


你可能感兴趣的:(C语言)