天天看點

一大堆的福利之【USACO題庫】Superprime Rib特殊的質數肋骨

題目描述

農民約翰母牛總是産生最好的肋骨。

你能通過農民約翰和美國農業部标記在每根肋骨上的數字認出它們。

農民約翰确定他賣給買方的是真正的質數肋骨,是因為從右邊開始切下肋骨,每次還剩下的肋骨上的數字都組成一個質數,舉例來說:

7 3 3 1

全部肋骨上的數字 7331是質數;三根肋骨 733是質數;二根肋骨 73 是質數;當然,最後一根肋骨 7 也是質數。

7331 被叫做長度 4 的特殊質數。

寫一個程式對給定的肋骨的數目 N (1<=N<=8),求出所有的特殊質數。

數字1不被看作一個質數。

PROGRAM NAME: sprime

INPUT FORMAT

單獨的一行包含N。

SAMPLE INPUT (file sprime.in) 

4

OUTPUT FORMAT

按順序輸出長度為 N 的特殊質數,每行一個。

SAMPLE OUTPUT (file sprime.out)

2333

2339

2393

2399

2939

3119

3137

3733

3739

3793

3797

5939

7193

7331

7333

7393

const
    s:array[..]of longint=(,,,);
    a:array[..]of longint=(,,,);
var
    n,i:longint;
procedure dfs(i,tmp:longint);
var
    j:longint;
begin
    for j:= to trunc(sqrt(tmp)) do
        if tmp mod j= then exit;
    if i=n then begin writeln(tmp);exit;end;
    for j:= to  do dfs(i+,tmp*+a[j]);
end;
begin
    readln(n);
    for i:= to  do
        dfs(,s[i]);
end.