Số Siêu Nguyên Tố

Số siêu nguyên tố là số nguyên tố mà khi bỏ  một số tuỳ ý các chữ số bên phải của nó thì phần còn lại vẫn tạo thành một số nguyên tố.

Ví dụ 7331 là một số siêu nguyên tố có 4 chữ số vì  733, 73, 7 cũng là các số nguyên tố.

Nhiệm vụ của bạn là viết chương trình nhập dữ liệu vào là một số nguyên N (0< N <9) và đưa ra kết quả là một số siêu nguyên tố có N chữ số cùng số lượng của chúng.

Ví dụ khi chạy chương trình:

Nhap so N: 4¿

Cac so sieu nguyen to có 4 chu so la:         2333 2339  2393  2399  2939  3119  3137  3733          3739  3793  3797  5939  7193  7331  7333  7393

Dùng quét cạn:

program sieunguyento;

var n,j: longint;

A,SNT:array[0..10] of longint;

Function KTNT(x:longint):boolean;

var i:longint;

begin

if x=1 then begin KTNT:=false; exit; end

else

For i:=2 to trunc(sqrt(x)) do

if x mod i = 0 then begin

KTNT := false;

exit;

end;

KTNT := true;

end;

procedure Sieunguyento(i:integer);

var j:integer;

begin

for j:=1 to 9 do

begin

A[i]:=j; Snt[i]:=SNT[i-1]*10+ A[i];

if ktnt(Snt[i]) then

if i=n then writeln(Snt[i]) else

Sieunguyento(i+1);

end;

end;

begin

n := 8; SNT[0]:=0;

Sieunguyento(1);

readln

end.

Dùng mảng:

var A,B: array[1..100] of longint;    dem,i,j,n,k,c: byte;         Function KTNT(x:longint):boolean;        var i:longint;        begin             if x=1 then begin KTNT:=false; exit; end            else                For i:=2 to trunc(sqrt(x)) do                     if x mod i = 0 then begin                        KTNT := false;                         exit;                    end;            KTNT := true;        end;            begin        write(‘nhap n: ‘); readln(n);  dem := 1;        For k:=1 to n do begin                          for i:= 1 to dem do                For j:=1 to 9 do                     if KTNT(A[i]*10 + j) then begin                            inc(c);                            B[c]:=A[i]*10+j;                        end;               A := B; dem:=c; c:=0;                      end;     For i := 1 to dem do writeln(A[i]);    readln      end.

Chia sẻ:

  • Facebook
  • Email
  • Thêm
  • Twitter
Thích Đang tải...

Từ khóa » Thuật Toán Tìm Số Siêu Nguyên Tố Trong Pascal