Viết chương trình nhập vào số nguyên dương M. Kiểm tra M có phải là số nguyên tố không, số chính phương không, số hoàn hảo không? Mong nhận được câu trả lời từ mn ạ!!!

2 câu trả lời

program kiemtra;

uses crt;

var M:integer;

function ktnt(k:integer):boolean;

var l:integer;

begin

     ktnt:=false;

     if k<2 then exit;

     for l:=2 to trunc(sqrt(k)) do

          if k mod l=0 then exit;

     ktnt:=true;

end;

function ktcp(k:integer):boolean;

begin

     if sqr(trunc(sqrt(k))=k then ktcp:=true

          else ktcp:=false;

end;

function kthh(k:integer):boolean;

var l,t:integer;

begin

     t:=0;

     for l:=1 to k div 2 do

          if k mod l=0 then t:=t+l;

     if t=k then kthh:=true else kthh:=false;

end;

BEGIN

     clrscr;

     write('Nhap M: ');  readln(m);

     if ktnt(m) then writeln(m,' la so nguyen to')

          else writeln(m,' khong phai so nguyen to');

     if ktcp(m) then writeln(m,' la so chinh phuong')

          else writeln(m,' khong phai so chinh phuong');

     if kthh(m) then write(m,' la so hoan hao')

          else write(m,' khong phai so hoan hao');

     readln;

end.

uses crt;
var m:longint;
{---Ham-nguyen-to---}
function nt(m:longint):boolean;
var i:longint;
begin
   i:=2;
   if m<2 then exit(false);
   while m mod i<>0 do inc(i);
   if i=m then nt:=true else nt:=false;
end;
{---Ham-chinh-phuong---}
function cp(m:longint):boolean;
var a:longint;
begin
   a:=trunc(sqrt(m));
   if sqr(a)=m then cp:=true else cp:=false;
end;
{---Ham-hoan-hao---}
function hh(m:longint):boolean;
var i,s:longint;
begin
   for i:=1 to m div 2 do 
      if m mod i=0 then inc(s,i);
   if s=m then hh:=true else hh:=false;
end;
{---Chuong-trinh-chinh---}
begin
   clrscr;
   write('Nhap M: '); readln(m);
   if nt(m) then writeln(m,' la so nguyen to')
   else writeln(m,' khong phai la so nguyen to');
   if cp(m) then writeln(m,' la so chinh phuong')
   else writeln(m,' khong phai la so chinh phuong');
   if hh(m) then writeln(m,' la so hoan hao')
   else writeln(m,' khong phai la so hoan hao');
   readln
end.

Câu hỏi trong lớp Xem thêm