您的位置:首页 > 其它

Usaco 1.5.3 特殊的质数肋骨(特殊的质数肋骨)

2011-08-05 10:41 381 查看
题目:

特殊的质数肋骨

来源:

Usaco1.5.3

题目大意:

求N位数,其所有数都满足从右开始删除,保证左边的数依旧为质数,输出这些数

数据范围:

1<=N<=8

样例:

4

















2333

2339

2393

2399

2939

3119

3137

3733

3739

3793

3797

5939

7193

7331

7333

7393


做题思路:

根据题意可知,保证删除最后一位后还能成素数,所以除第一位其他位只能为1、3、7、9,第一位只能为2、3、5、7,据此dfs吧,每向下搜一层判断下是否为质数即可

知识点:

质数判断、数序规律

{
ID:DountNameless
TASK:sprime
LANG:PASCAL
}
var
n:longint;
functionpd(x:longint):boolean;{<>判断质数}
var
i:longint;
begin
fori:=2totrunc(sqrt(x))do
ifxmodi=0thenexit(false);
exit(true);
end;
proceduredfs(x,h:longint);
begin
ifnotpd(x)thenexit;
ifh=nthen
begin
writeln(x);
exit;
end;
dfs(x*10+1,h+1);
dfs(x*10+3,h+1);
dfs(x*10+7,h+1);
dfs(x*10+9,h+1);
end;
begin
assign(input,'sprime.in');reset(input);
assign(output,'sprime.out');rewrite(output);
readln(n);
dfs(2,1);dfs(3,1);dfs(5,1);dfs(7,1);{<枚举第一位的情况>}
close(input);close(output);
end.题目来源:http://ace.delos.com/usacoprob2?a=RexmW8CclSt&S=sprime
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: