usaco 1.5 sprime 2008.11.5
{
ID:
PROG: sprime
LANG: PASCAL
}
program p_sprime;
const
maxn=8;
fin='sprime.in';fout='sprime.out';
a:array[1..4]of integer=(2,3,5,7);
b:array[1..4]of integer=(1,3,7,9);
var f1,f2:text;
g,n:longint;
function deal(t:longint):boolean;
var j:longint;
begin
for j:=3 to trunc(sqrt(t)) do
if t mod j=0 then exit(false);
deal:=true;
end;
procedure init;
begin
assign(f1,fin);reset(f1);
assign(f2,fout);rewrite(f2);
read(f1,n);
end;
procedure search(g,r:longint);
var p,j:longint;
begin
for j:=1 to 4 do
begin
p:=g*10+b[j];
writeln(p);
writeln(g);
if deal(p) then
if r=n then writeln(f2,p) else search(p,r+1);
end;
end;
procedure doit;
var i:longint;
begin
for i:=1 to 4 do
search(a[i],2);
end;
{---------------main---------------}
begin
init;
doit;
close(f1);close(f2);
end.
data
Executing...
Test 1: TEST OK [0.011 secs, 200 KB]
Test 2: TEST OK [0.000 secs, 200 KB]
Test 3: TEST OK [0.011 secs, 204 KB]
Test 4: TEST OK [0.000 secs, 200 KB]
Test 5: TEST OK [0.011 secs, 204 KB]
All tests OK.
YOUR PROGRAM ('sprime') WORKED FIRST TIME! That's fantastic
-- and a rare thing. Please accept these special automated
congratulations.
Here are the test data inputs:
------- test 1 -------
4
------- test 2 -------
5
------- test 3 -------
6
------- test 4 -------
7
------- test 5 -------
8