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 t

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 ạ!!!

0 bình luận về “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 t”

  1. 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.

    Bình luận
  2. 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.

    Bình luận

Viết một bình luận