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

  • hnh_chibao 6:29 p.m. 18 Tháng 3, 2025

    import math
    def sohoanhao(n):
    if n <= 1:
    return False
    tong = 1
    for i in range(2, int(math.sqrt(n)) + 1):
    if n % i == 0:
    tong += i
    if i != n // i:
    tong += n // i
    return tong == n
    n = int(input())
    if sohoanhao(n):
    print("YES")
    else:
    print("NO")

    • p12a3DoanLinhSan 5:55 p.m. 18 Tháng 12, 2024 đã chỉnh sửa

      This comment is hidden due to too much negative feedback. Click here to view it.

      • p12a3DoanLinhSan 5:52 p.m. 18 Tháng 12, 2024

        This comment is hidden due to too much negative feedback. Click here to view it.

        • blinh 12:53 a.m. 28 Tháng 9, 2024
          note

          1 số được gọi là số hoàn hảo khi số đó được biểu thị bằng công thức: 2^(p-1)×(2^p-1), với p là các số nguyên tố: 2, 3, 5, 7, 13, 17, 19, 31, 61, 89, 107, 127, 521, 607,..., khi đó các số nguyên tố được biểu thị dưới dạng 2^p-1 với p là các số nguyên tố như trên thì ta được một số nguyên tố Mersenne, ví dụ: khi p=3 ta được số nguyên tố Mersenne là 2³-1=7 và khi đó số hoàn hảo tương ứng là 2^(3-1)×(2³-1)=2^(3-1)×7=28

          • khai434343 8:45 a.m. 3 Tháng 6, 2024 đã chỉnh sửa

            http://www.lqdoj.edu.vn/submission_source_file/17173790802c83ff3a32.sb3
            scratch
            ai scratch thì upvote nha, ko phải scratch thì tải link rồi vào scratch ấn new project rồi Load from your computer nha

            • bachtl2023 7:26 p.m. 14 Tháng 3, 2024

              This comment is hidden due to too much negative feedback. Click here to view it.

              • 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))
                
                • peter 6:47 a.m. 20 Tháng 2, 2024

                  import math
                  n = int(input())
                  sqrt_n = int(math.sqrt(n))
                  t = 0
                  for i in range(2, sqrt_n + 1):
                  if n % i == 0:
                  t += i + n // i
                  if sqrt_n * sqrt_n == n:
                  t -= sqrt_n
                  t += 1 # Bổ sung ước 1
                  if t == n:
                  print('YES')
                  else:
                  print('NO')
                  code đúng nè

                  • tranthanh05012011 1:56 p.m. 6 Tháng 8, 2023

                    Mong Thầy xử lí ạ!

                    • AKhoi 6:51 p.m. 27 Tháng 7, 2023

                      import math

                      n = int(input())
                      sqrt_n = int(math.sqrt(n))
                      t = 0

                      for i in range(2, sqrt_n + 1):
                      if n % i == 0:
                      t += i + n // i

                      if sqrt_n * sqrt_n == n:
                      t -= sqrt_n

                      t += 1 # Bổ sung ước 1

                      if t == n:
                      print('YES')
                      else:
                      print('NO')

                      • 7 bình luận nữa