USACO 1.5 回文质数
2016-04-08 21:43
281 查看
Description 因为151即是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151
号是回文质数。 写一个程序来找出范围[a,b](5 <= a < b <=
100,000,000)间的所有回文质数;Input第 1 行: 二个整数 a 和 b
.Output输出一个回文质数的列表,一行一个。Sample Input
号是回文质数。 写一个程序来找出范围[a,b](5 <= a < b <=
100,000,000)间的所有回文质数;Input第 1 行: 二个整数 a 和 b
.Output输出一个回文质数的列表,一行一个。Sample Input
5 500Sample Output
5
7
11
101
131
151
181
191
313
353
373
383
解题思路:先用筛数法把素数筛出来,再判断它是不是回文数,如果是就输出。
程序:
var
i,j,n,m:longint;
a:array[2..10000000] of boolean;
function huiwen(x:longint):boolean;
var
i,j:longint;
s:string;
begin
huiwen:=true;
str(x,s);
i:=0;
j:=1+length(s);
while i<=length(s) div 2 do
begin
inc(i);
dec(j);
if s[i]<>s[j] then begin huiwen:=false; break; end;
end;
end;
begin
read(n,m);
if m>10000000 then m:=10000000;
for i:=2 to m do
a[i]:=true;
for i:=2 to trunc(sqrt(m)) do
if a[i] then for j:=2 to m div i do
a[i*j]:=false;
for i:=n to m do
if (a[i]) and (huiwen(i)) then writeln(i);
end.
相关文章推荐
- USACO&nbsp;1.5&nbsp;数字金字塔
- USACO&nbsp;1.3&nbsp;牛式
- USACO&nbsp;1.2&nbsp;双重回文数
- USACO&nbsp;1.2&nbsp;回文平方数
- USACO&nbsp;1.2&nbsp;方块转换
- USACO&nbsp;1.2&nbsp;挤牛奶
- USACO&nbsp;1.1&nbsp;你要乘坐的飞碟在这里
- USACO&nbsp;1.1&nbsp;黑色星期五
- USACO&nbsp;1.1&nbsp;贪婪的礼物送礼者
- USACO&nbsp;1.1&nbsp;破碎的项链
- 求二叉树的后序遍历(树)
- 查找单词树(树)
- 约瑟夫问题(指针变量及线性链表)
- Android 开发知识点
- c#输入
- js 将json字符串转为js对象
- Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法
- 【脚本化文档】——属性&元素的内容
- ACM程序设计选修课——1076汇编语言(重定向+模拟)
- 麻将游戏(广度优先搜索)