回文素数(洛谷-P 1217)
タイトルの説明
151は1つの素数であり、1つの回文数(左から右と右から左は同じ)であるため、151は回文素数である.
範囲[a,b](5<=a
にゅうしゅつりょくけいしき
入力形式:
1行:2つの整数aとb.
出力フォーマット:
文質数のリストを出力し、行を1つ出力します.
入出力サンプル
サンプル#1を入力:
5 500
出力サンプル#1:
5 7 11 101 131 151 181 191 313 353 373 383
考え方:1億以内の回文素数を要求し、7位で十分な回文数を構築し、素数を判断すればよい
ソースコード
#include
#include
using namespace std;
int judge_prime(int n)//
{
int i;
if(n%2==0) return 0;
for(i=3;i9)
{
n/=10;
len++;
}
return len;
}
int main()
{
int a,b;
int len_a,len_b;
int m,n,p,q;
int number;
int judge_prime(int n);
int lengh(int n);
cin>>a>>b;
len_a=lengh(a);
len_b=lengh(b);
if(len_a<=1&&len_b>=1)// 1
{
if(a<=5&&b>=5)
cout<<5<=7)
cout<<7<=2)// 2
{
if(a<=11&&b>=11)
cout<<11<=3)// 3
{
for(m=1;m<=9;m+=2)
{
for(n=0;n<=9;n++)
{
number=m*100+n*10+m;
if(numberb)
break;
if(judge_prime(number))
cout<=5)// が5 の
{
for(m=1;m<=9;m+=2)
{
for(n=0;n<=9;n++)
{
for(p=0;p<=9;p++)
{
number=m*10000+n*1000+p*100+n*10+m;
if(numberb)
break;
if(judge_prime(number))
cout<=7)// が7 の
{
for(m=1;m<=9;m+=2)
{
for(n=0;n<=9;n++)
{
for(p=0;p<=9;p++)
{
for(q=0;q<=9;q++)
{
number=m*1000000+n*100000+p*10000+q*1000+p*100+n*10+m;
if(numberb)
break;
if(judge_prime(number))
cout<