洛谷P1218 特殊的质数肋骨

来源:互联网 发布:淘宝苹果组装机 编辑:程序博客网 时间:2024/04/30 11:36

题目描述

求出n位数中满足条件的数字,去除首位,每次还剩下的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。 7331 被叫做长度 4 的特殊质数。写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数。数字1不被看作一个质数。

输入样例:

4 

输出样例:

2333233923932399293931193137373337393793379759397193733173337393

思路

枚举数字,每次给一个质数首位加上一个数字再判断是不是质数。以此类推直到这个数字有n位。
var  n,l:longint;function stt(x:longint):boolean;var  i:longint;begin  if x=1 then exit(false);  for i:=2 to trunc(sqrt(x)) do    if x mod i=0 then exit(false);  exit(true);end;procedure tt(x,y:longint);var  i:longint;begin  for i:=1 to 9 do    if stt(y*10+i) then      if x=n then writeln(y*10+i)      else tt(x+1,y*10+i);end;begin  readln(n);  tt(1,0);end.
1 1
原创粉丝点击