SUMDIV - Tổng ước

Link Sub: http://www.spoj.com/PTIT/problems/SUMDIV/
Người Gửi: Darkness

  • Problem:

Tính tổng các ước của số n (n≤10^12).

Input
Dòng đầu chứa số bộ test.  
Các dòng sau, mỗi dòng chứa 1 số nguyên dương n (n≤10^12).
Output
Mỗi test in trên 1 dòng chứa 1 số nguyên là tổng các ước của test tương ứng.
Example:
Input
2
5
6
Output:
6
12

  • Solution:

- Tìm các ước trong khoảng i:[1, sqrt(n)). 
- Với mỗi giá trị tìm được ta có 2 ước là i và n/i; 
Chú ý nếu là số chính phương thì ta có thêm một ước là sqrt (n).

  • Code:
C:



C++:



JAVA:


Share this

Related Posts

Previous
Next Post »