Viết chương trình pascal nhập số n xuất ra màn hình. - kiểm tra n có phải là số nguyên tố ko? -các số chính phương từ 0 đến n. - các số nguyên tố từ 2 đến n. LƯU Ý: chỉ được DÙNG while...do,KHÔNG ĐƯỢC DÙNG for.. to..do nha ## Mình cần rất gấp nên mong mọi người giúp mình. Cảm ơn nhiều!!!
2 câu trả lời
Program BTT;
Uses crt;
Var n,i: longint;
Function ngto(a: longint): boolean;
Var i: longint;
Begin
If a<2 then exit(false);
i:=2;
While i<= n div 2 do
Begin
If a mod 2 = 0 then exit(false);
inc(i);
End;
Exit(true);
End;
Function cp(a: longint): boolean;
Begin
If a=sqr(trunc(sqrt(a))) then exit(true);
Exit(false);
End;
Begin
Clrscr;
Write('Nhap n: '); Readln(n);
If ngto(n) then Writeln(n,' la so nguyen to')
Else Writeln(n,' khong phai so nguyen to');
i:=0;
Write('Cac so chinh phuong tu 0 - ',n,': ');
While i<=n do
Begin
If cp(i) then Write(i,' ');
inc(i);
End;
Writeln;
i:=2;
Write('Cac so nguyen to tu 2 - ',n,': ');
While i<=n do
Begin
If ngto(i) then Write(i,' ');
inc(i);
End;
Readln
End.
var n,i,c:longint;
function checkprime(x:longint):boolean;
begin
if x=1 then exit(false);
c:=2;
while c<trunc(sqrt(n)) do begin if x mod c = 0 then exit(false); inc(c); end;
exit(true);
end;
function chinhphuong(x:longint):boolean;
begin
if sqrt(x) = trunc(sqrt(x)) then exit(true);
exit(false);
end;
begin
write('Nhap n: '); read(n);
if checkprime(n) then writeln('N la so nguyen to') else writeln('N khong phai la so nguyen to');
i:=0;
while i<n do begin if chinhphuong(i) then write(i,' '); inc(i); end;
writeln;
i:=1;
while i<n do begin if checkprime(i) then write(i,' '); inc(i); end;
readln;
readln;
end.