Số hoàn hảo là số mà tổng các ước của nó bằng 2 lần chính nó. Ví dụ: 6 là số hoàn hảo vì 6 có tổng ước là 1+2+3+6=12 = 2 lần số 6. Yêu cầu: Viết chương trình nhập vào số nguyên n. In ra chữ YES nếu n là số hoàn hảo, ngược lại ghi chữ NO Dữ liệu vào Một số nguyên dương n (n≤1012). Kết quả In ra chữ YES nếu n là số hoàn hảo, ngược lại ghi chữ NO Sample Input 1 6 Sample Output 1 YES Sample Input 2 36 Sample Output 2 NO

2 câu trả lời

*Python:

from math import sqrt
n=int(input())
tc=0
for i in range (1,int(sqrt(n))+1):
    if (n%i==0):
        tc+=i
        if (n/i!=i):
            tc+=n//i
if (n*2==tc):
    print("YES")
else:
    print("NO")
    print("NO")

Uses crt;
Var 
    n,i,s: integer;
Begin
    repeat
    clrscr;
    writeln('Nhap so nguyen n: '); readln(n);
    until(n<=1012);
    s:=0;
    for i:=1 to n do
        if n mod i=0 then s:=s+i;
    if s=n*2 then writeln('YES') else writeln('NO');
    readln;
End.