Số hoàn hảo

Xem PDF



Tác giả:
Dạng bài
Điểm: 100 Thời gian: 0.5s Bộ nhớ: 640M Input: bàn phím Output: màn hình

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

Input

  • Một số nguyên dương \(n\)(\(n\leq 10^{12}\)).

Output

  • In ra chữ YES nếu \(n\) là s ố hoàn hảo, ngược lại ghi chữ NO.

Example

Test 1

Input
6
Output
YES

Test 2

Input
36
Output
NO

Bình luận


  • 0
    Avocadorable    7:33 p.m. 23 Tháng 2, 2024
    import math
    
    def is_perfect_number(n):
        if n <= 0:
            return "NO"
        sum_of_divisors = 1
        for i in range(2, int(math.sqrt(n)) + 1):
            if n % i == 0:
                if i == n / i:
                    sum_of_divisors += i
                else:
                    sum_of_divisors += i + (n / i)
        if sum_of_divisors == n:
            return "YES"
        else:
            return "NO"
    
    num = int(input())
    print(is_perfect_number(num))
    
    • 13 bình luận nữa