Viết chương trình nhập vào số n. In tất cả các số nguyên tố <=n

2 câu trả lời

uses crt;
const Lim = trunc(1e6);
var isPrime: array[0..Lim] of byte;
    i, n: longint;

procedure Sieve(const n: longint);
var i, j: longint;
begin
    for i:=2 to trunc(sqrt(n)) do
        if isPrime[i] = 0 then
            for j:=i to n div i do
                isPrime[i * j]:=1;
end;

begin
    readln(n);
    Sieve(n);
    for i:=2 to n do
        if isPrime[i] = 0 then write(i, ' ');
readln;
end.

uses crt;
var i,n:longint;
function NT(a:longint):boolean;
var dem,j:longint;
        begin
         dem:=0;
         for j:=1 to a do if(a mod j=0)then inc(dem);
         NT:=dem=2;
        end;
begin
 clrscr;
  write('nhap n:');readln(n);
  for i:=1 to n do if(NT(i))then write(i,' ');
 readln
end.