Viết chương trình nhập mảng A với N số nguyên(N<=10000) và một chương trình con kiểm tra số hoàn hảo. Hãy tính tổng các số hoàn hảo có trong mảng A

2 câu trả lời

program hoan_hao;

uses crt;

var A:array[1..10000] of integer;

      n,i,t:integer;

{---Chuong-trinh-con---}

function kthh(k:integer):boolean;

var s,j:integer;

begin

       s:=0;

       for j:=1 to k div 2 do

              if k mod j=0 then s:=s+j;

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

end;

{---Chuong-trinh-chinh---}

BEGIN

       clrscr;

       write('Nhap N: ');   readln(n);

       t:=0;

       for i:=1 to n do

              begin

                     write('A[',i,']= ');  readln(A[i]);

                     if kthh(A[i]) then t:=t+A[i];

              end;

       write('Tong cac so hoan hao trong mang A la: ',t);

       readln;

end.

uses crt;
var n,i,s:longint;a:array[1..10000] of longint;
{---Ham-hoan-hao---}
function hh(a:longint):boolean;
var i,s:longint;
begin
   s:=0;
   for i:=1 to a div 2 do 
      if a mod i=0 then
         inc(s,i);
      if s=a then
         hh:=true 
      else
         hh:=false;
end;
{---Chuong-trinh-chinh---}
begin
   clrscr;
   write('Nhap so luong phan tu: '); readln(n);
   for i:=1 to n do 
      begin
         write('Phan tu thu ',i,': '); read(a[i]);
         if hh(a[i]) then inc(s,a[i]);
      end;
   writeln('Tong hoan hao: ',s);
   readln
end.

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