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.