P1217 [USACO1.5]回文质数 Prime Palindromes

题目描述

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

写一个程序来找出范围 [a,b] (5 \le a < b \le 100,000,000)[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<iostream>
using namespace std;
int main()
{
	int m, n, j, i, k = 0, flag = 0;
	cin >> m >> n;
	if (m <= 5 && n >= 5)
		cout << "5" << endl;
	if (m <= 7 && n >= 7)
		cout << "7" << endl;
	if (m <= 11 && n >= 11)
		cout << "11" << endl;
	
	for(int a=1;a<10;a+=2)
		for (int b = 0; b < 10; b++)
		{
			flag = 0;
			int sum = a * 100 + b * 10 + a;
			if (sum < m)
				continue;
			if (sum > n)
				return 0;
			for (j = 3; j*j <= sum; j+=2)
			{
				if (sum % j == 0)
				{
					flag = 1;
					break;
				}
			}
			if (flag == 0)
				cout << sum << endl;
		}
	
	for (int a = 1; a < 10; a += 2)
		for (int b = 0; b < 10; b++)
			for(int c=0;c<10;c++)
			{
				flag = 0;
				int sum = a * 10000 + b * 1000 + c * 100 + b * 10 + a;
				if (sum < m)
					continue;
				if (sum > n)
					return 0;
				for (j = 3; j*j <=sum; j+=2)
				{
					if (sum % j == 0)
					{
						flag = 1;
						break;
					}
				}
				if (flag == 0)
					cout << sum << endl;
			}

	for (int a = 1; a < 10; a += 2)
		for (int b = 0; b < 10; b++)
			for (int c = 0; c < 10; c++)
				for(int d=0;d<10;d++)
			{
				flag = 0;
				int sum = a * 1000000 + b * 100000 +c*10000+d*1000+ c * 100 + b * 10 + a;
				if (sum < m)
					continue;
				if (sum > n)
					return 0;
				for (j = 3; j*j <= sum; j+=2)
				{
					if (sum % j == 0)
					{
						flag = 1;
						break;
					}
				}
				if (flag == 0)
					cout << sum << endl;
			}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆水獭_(:_」∠)_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值