Số hoàn hảo

View as PDF



Author:
Problem type
Points: 100 Time limit: 0.5s Memory limit: 640M Input: stdin Output: stdout

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

Comments


  • 1
    bachtl2023    7:26 p.m. 14 mar, 2024

    thế này cũng ac

    n=int(input())
    if n==6 or n==8128:
    print("YES")
    else:
    print("NO")


    • -1
      Avocadorable    7:33 p.m. 23 feb, 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))
      

      • 0
        peter    6:47 a.m. 20 feb, 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è


        • 0
          tranthanh05012011    1:56 p.m. 6 aug, 2023

          Mong Thầy xử lí ạ!

          1 reply

          • -1
            AKhoi    6:51 p.m. 27 jul, 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')


            • -9
              trikien_    9:18 p.m. 10 apr, 2023

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

              1 reply

              • 0
                lian11spt    11:49 a.m. 3 jan, 2023

                q


                • 0
                  DangMinhBaoKhang0913    5:32 p.m. 23 dec, 2022

                  ai giup mik bai nay v


                  • 1
                    Vudoanh908    9:38 a.m. 25 aug, 2022

                    hi


                    • -17
                      thanhkhoa123    10:54 a.m. 17 jun, 2022

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

                      2 replies
                      • 2 more comments