VL13 - Kiểm tra số hoàn hảo

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Số hoàn hảo (số hoàn thiện) là một số nguyên dương mà tổng các ước nguyên dương của nó (không bao gồm ước lớn nhất) bằng chính nó.

Ví dụ:

~ 6 = 1 + 2 + 3 ~ là một số hoàn hảo.

Nhiệm vụ của bạn là viết chương trình kiểm tra 1 số nguyên nhập từ bàn phím có phải số hoàn hảo hay không!

Input

  • Số nguyên ~n~ cần kiểm tra

Giới hạn

  • ~|n| \le 10^9~

Output

  • In ra YES nếu ~n~ là số hoàn hảo
  • In ra NO nếu ~n~ không phải số hoàn hảo

Sample

Input #1
6
Output #1
YES

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 0
    mainpk9_hi9LL  đã bình luận lúc 8, Tháng 4, 2025, 8:08

    include <bits/stdc++.h>

    using namespace std; int main() { int n , s =0; cin >> n ; for (int i=1; i<n; i++) { if (n%i==0) s+= i; } if (s == n){ cout<< " YES"; }else{ cout<<" NO"; } return 0; } lời giải chi tiết cho ai cần


  • -1
    Minhsang1  đã bình luận lúc 29, Tháng 3, 2025, 8:51

    nếu n <=10^18 thì nên làm như nào các bạn nếu đc cho mk xin code


  • 0
    dtdat160314  đã bình luận lúc 15, Tháng 1, 2025, 1:00 chỉnh sửa

    xin chao các bạn


  • -1
    tngnghi250315  đã bình luận lúc 22, Tháng 12, 2024, 7:51

    khos quas


  • -3
    danglephuong  đã bình luận lúc 4, Tháng 12, 2024, 9:13

    khó quá các bạn ơi!


  • 0
    kietjumper  đã bình luận lúc 4, Tháng 11, 2024, 16:14

    M không được bố mẹ m giáo dục cách ăn nói à?? Bây giờ t nhắc nhở lại còn nói "kệ mẹ t" nữa chứ. Xem lại bản thân m và xem lại cả những dòng comment bẩn thỉu của m đi!!!


  • -4
    bnbnbn  đã bình luận lúc 10, Tháng 1, 2025, 16:10

    kiệt an hùng thực phương nguuu lon


  • -1
    super_god  đã bình luận lúc 8, Tháng 10, 2024, 2:40

    hello ae


  • 0
    holecuong  đã bình luận lúc 6, Tháng 3, 2024, 21:44

    nguyên nhân gì xin các bạn chia sẽ giúp mình với


  • 0
    hailuacx  đã bình luận lúc 12, Tháng 1, 2024, 16:29

    Sai ở vòng for. for(ll i=2;i<=n;i++) là bạn lấy cả ước n luôn rồi.


  • -1
    khnguyen21th06  đã bình luận lúc 3, Tháng 12, 2023, 14:56

    ai code bài này AC bằng c++ cho mình xin code với, cứ bị TLE quài á


  • -1
    hieuthuba1907  đã bình luận lúc 27, Tháng 12, 2023, 7:27

    <bits/stdc++.h> là thư viện chuẩn có chứa cả <iostream> rồi bn nhé!


  • -5
    Iamnotsmart  đã bình luận lúc 11, Tháng 8, 2023, 13:23

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -1
      tungkq123  đã bình luận lúc 28, Tháng 11, 2023, 9:08

      đọc đề nhầm tý là out luôn =))


  • -1
    Yorickur  đã bình luận lúc 22, Tháng 7, 2023, 16:12

    dạ cho mình hỏi code mình sai chỗ nào vậy ạ, mình bị sai ngay test case đầu tiên luôn bool hoanthien(int n) { int temp = 1; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { temp += i; if (i != n / i) { temp += n / i; } } } return temp == n; }


    • 0
      lch101  đã bình luận lúc 22, Tháng 7, 2023, 19:43

      Thứ nhất: tại i = 1. thì temp += 1 && tmp += n như này đã vi phạm đoạn tính ước là chính nó. Thứ 2: Bạn thiếu case n = 1 thì nó không phải là số hoàn hảo nhé vì shh không bao gồm ước là chính nó.


  • 0
    yoonicornsyndrome  đã bình luận lúc 12, Tháng 7, 2023, 19:37

    cho em hỏi test case 5 là gì v ạ?


    • 0
      hoangnguyenn268  đã bình luận lúc 14, Tháng 7, 2023, 5:42

      Mình nghĩ là liên quan kiểu dữ liệu ấy. Y/c 10^9 lận