SUMDIV - Tính tổng các ước số

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

Tính tổng của tất cả các ước nguyên dương của số nguyên dương ~n~.

Input

  • Dòng đầu ghi số nguyên dương ~T~ là số bộ test.
  • ~T~ dòng tiếp theo, mỗi dòng chứa một số nguyên dương ~n~.

Giới hạn:

  • ~1 ≤ T ≤ 10^3, 1 ≤ n ≤ 10^6~.

Output

  • Với mỗi số nguyên dương ~n~, ghi ra trên một dòng số nguyên dương là tổng của tất cả các ước của ~n~.

Sample

Input #1
3
3
8
15
Output #1
4
15
24

Problem source: Chuyên Sơn La Online Judge


Bình luận

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



  • -3
    daylatuu  đã bình luận lúc 17, Tháng 10, 2024, 8:46 chỉnh sửa

    bài này các bạn có thể sàng ước, giống như sàng nt

    i : 1 -> 1e6

    j : i -> 1e6, j += i ta tăng sang[j] += i

    với mỗi truy vấn ta chỉ cần in sang[n]


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

    hello ae


  • -4
    khanh_it1  đã bình luận lúc 22, Tháng 11, 2023, 2:58

    lam bi tle. mn cho em xin cach full test voi


  • -2
    kietjumper  đã bình luận lúc 26, Tháng 9, 2024, 12:56 sửa 2

    Thuật toán

    Duyệt ~i~ từ ~1~ -> ~n~/~i~, nếu ~n~ chia hết cho ~i~, sum += ~i~ + ~n~/~i~, sau đó kiểm tra xem ~i~ * ~i~ có bằng n hay không, nếu bằng, sum -= ~i~. Cuối cùng in ra sum là xong!