Viết chương trình kiểm tra số siêu nguyên tố trong pascal và xuất ra kết quả. VD: 23333 là số siêu nguyên tố

2 câu trả lời

uses crt;
var kt,i,t:longint;n:int64;
function NT(a:longint):boolean;
var dem,i:longint;
        begin
         dem:=0;
         for i:=1 to a do if(a mod i=0)then inc(dem);
         NT:=dem=2;
        end;
begin
 clrscr;
  write('nhap n:');readln(n);
  while(n<>0)and(kt=1)do
        begin
         t:=n mod 10;
         if(not(NT(t)))then kt:=0;
         n:=n div 10;
        end;
  if(kt=1)then write('n la so sieu nguyen to')else write('n khong la so sieu nguyen to');
 readln
end.

uses crt;
const lim = trunc(1e6);
var n: longint;
    p: array[0..lim] of boolean;

procedure sieve(n: longint);
var i, j: longint;
begin
    for i:=2 to trunc(sqrt(n)) do
        if not p[i] then
            for j:=i to n div i do p[j * i]:=true;
end;

function check(n: longint): boolean;
var bool: boolean;
begin
    if p[n] then exit(false);
    while n <> 0 do
        begin
            if p[n] = false then
                begin
                    bool:=true;
                    n:=n div 10;
                end else exit(false);
        end;
    exit(bool);
end;

begin
clrscr;
    readln(n);
    sieve(lim);
    writeln(check(n));
readln;
end.