Số siêu nguyên tố là số mà bỏ đi một số bất kì chữ số nào bên phải số đó thì ta đều được số ngtố
vd : abcdef được gọi là siêu ngtố khi các số sau là số ngtố :abcdef , abcde , abcd , abc , ab , a .
Nhập vào số N ( 0<N<10 )
In ra tấc cả các số siêu nguyên tố có N chữ số
uses crt;
type mang=array[1..100] of longint;
const so:array[1..5] of byte = (1,3,5,7,9);
var na,n,i:byte;
a:mang;
function kt_nt(n:longint):boolean;
var i:longint;
begin
kt_nt:=false;
for i:=2 to trunc(sqrt(n)) do
if (n mod i)=0 then exit;
if n>1 then kt_nt:=true;
end;
procedure tim1;
var i:byte;
begin
na:=0;
for i:=1 to 9 do
if kt_nt(i) then
begin
na:=na+1;
a[na]:=i;
end;
end;
procedure xuly;
var b:mang;
nb,i,j:byte;
tam:longint;
begin
nb:=0;
for i:=1 to na do
for j:=1 to 5 do
begin
tam:=a[i]*10 + so[j];
if kt_nt(tam) then
begin
nb:=nb+1;
b[nb]:=tam;
end;
end;
a:=b;
na:=nb;
end;
begin
clrscr;
write('Nhap so N: ');readln(n);
if (n<=0)or(n>=10) then
begin
write('Loi nhap sai chuan');
readln;
halt;
end;
tim1;
for i:=2 to n do xuly;
if na<1 then
begin
write('Khong co so sieu nguyen to co ',n,' chu so.');
readln;
halt;
end;
write('Cac so sieu nguyen to co ',n,' chu so la:');
for i:=1 to na do write(a[i]:10);
writeln;
write('Tat ca co ',na,' so');
readln;
end.