首页 > 代码库 > zoj 2095 Divisor Summation
zoj 2095 Divisor Summation
Give a natural number n (1 <= n <= 500000), please tell the summation of all its proper divisors.
Definition: A proper divisor of a natural number is the divisor that is strictly less than the number.
e.g. number 20 has 5 proper divisors: 1, 2, 4, 5, 10, and the divisor summation is: 1 + 2 + 4 + 5 + 10 = 22.
Input
An integer stating the number of test cases, and that many lines follow each containing one integer between 1 and 500000.
Output
One integer each line: the divisor summation of the integer given respectively.
Sample Input
3
2
10
20
Sample Output
1
8
22
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 int main(){ 5 int n, t, sum; 6 scanf("%d", &t); 7 while(t--){ 8 scanf("%d", &n); 9 if(n == 1){10 printf("0\n");11 continue;12 }13 sum = 1;14 for(int i = 2; i * i <= n; i++){15 if(n % i == 0){16 if(n / i != i){17 sum += (i + n / i);18 } else {19 sum += i;20 }21 }22 }23 printf("%d\n", sum);24 }25 return 0;26 }
zoj 2095 Divisor Summation
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。