时间限制: 3000 ms 空间限制: 65536 KB

题目描述

给你一个数N,需要你算出这个数所有约数的和。(N的约数指能整除N的正整数),例如12的约数有1,2,3,4,6,12。所以约数和为1+2+3+4+6+12=28

输入

本题有多组数据,第一行一个T(T小于等于1000),表示有T组数据,下面T行,每行一个正整数N(N小于等于100000)表示要处理的数。

输出

T行,每行一个正整数表示输入中对应的数的约数和。

样例输入

1
2
1
12

样例输出

1
28

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<bits/stdc++.h>
using namespace std;
int main()
{
register long long int n,i,j,num,ans=0;
cin>>n;
for(i=1;i<=n;i++){
cin>>num;
for(j=1;j<=num;j++){
if(num%j==0){
ans+=j;
}
}
cout<<ans<<endl;
ans=0;
}
}