Code:
uses crt;
var a: array[1..9] of byte;
b: longint;
n: byte;
procedure Enter;
begin
clrscr;
write(' Nhap n= '); readln(n);
b:=0;
write(' Cac so sieu ngto co ',n,' cso la: ');
end;
function Ngto(a: longint):boolean;
var i: longint;
begin
i:=2;
for i:=2 to a div 2 do
if a mod i = 0 then break;
if a = 2 then i:=3;
Ngto:= not (a mod i = 0);
end;
procedure PrintResult;
var i: byte;
begin
for i:=1 to n do
write(a[i]);
write(' ');
end;
procedure Attempt(k: byte);
var i: byte;
begin
for i:=0 to 9 do
begin
if (i = 0) and (k=1) then continue;
b:=b*10+i;
a[k]:=i;
if Ngto(b) then
begin
if k = n then PrintResult
else Attempt(k+1);
end;
b:=b div 10;
end;
end;
begin
Enter;
Attempt(1);
readln
end.
Khi mình chạy với n = 4 thì nó ra nhiều kq hơn so với vd của bạn, ko biết có đúng ko nữa
Bookmarks