Số gần hoàn hảo

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: GHH.INP
Output: GHH.OUT

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

Một số nguyên dương ~A~ được gọi là số "gần hoàn hảo" nếu thỏa mãn điều kiện: ~2 \times A \le K~, với ~K~ là tổng các ước số của ~A~.

Ví dụ: ~12~ là một số "gần hoàn hảo" vì ~2 \times 12 \lt 1 + 2 + 3 + 4 + 6 + 12~.

Yêu cầu: Cho một dãy số nguyên dương, hãy in ra các số "gần hoàn hảo".

Input

Vào từ file GHH.INP có cấu trúc như sau:

  • Dòng đầu tiên chứa số nguyên dương ~N~ (~0 \lt N \le 10^4~).

  • ~N~ dòng tiếp theo, mỗi dòng là một số nguyên dương có giá trị không vượt quá ~10^6~.

Output

Ghi ra file GHH.OUT gồm:

  • Dòng đầu tiên ghi số lượng số "gần hoàn hảo".

  • Các dòng tiếp theo, mỗi dòng ghi một số "gần hoàn hảo", số gặp trước thì viết trước.

Sample Input 1

5
8
16
12
6
7

Sample Output 1

2
12
6

Bình luận

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



  • 0
    THPTHD_Hieu  đã bình luận lúc 12, Tháng 5, 2025, 7:32

    ok nha


    • -1
      RussVN123  đã bình luận lúc 14, Tháng 5, 2025, 8:04

      Gà chiến !


      • 0
        THPTHD_Hieu  đã bình luận lúc 15, Tháng 5, 2025, 1:35

        Hiếu chiến !


  • -2
    hvycutis1tg  đã bình luận lúc 9, Tháng 5, 2025, 23:05

    include <bits/stdc++.h>

    define ll long long

    using namespace std; int tuoc(int a) { int res=a+1; for(int i=2;i<=sqrt(a);i++) { if(a%i==0) { res+=i; if(i!=a/i) res+=a/i; } } return res; } int sghh(int x) { int k=tuoc(x); if(2*x<=k) return 1; return 0; } int main() { iosbase::syncwithstdio(0); cin.tie(0);cout.tie(0); freopen("GHH.INP","r",stdin); freopen("GHH.OUT","w",stdout); int n; cin>>n; int a[n]; for(int i=0;i<n;i++) { cin>>a[i]; } int res=0; vector<int>v; for(int i=0;i<n;i++) { if(sghh(a[i])) v.pushback(a[i]); } cout<<v.size()<<"\n"; for( auto num:v) { cout<<num<<endl return> </endl>