回文素数(洛谷-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<