题目描述
给定一个数n,求n的因子和。
n的因子:所有的m满足n % m == 0。
输入
第一行输入一个整数t,代表有t组测试数据(t <= 100)
接下来有t行,每行有一个整数n。
保证1 <= n <= 100000000。
输出
输出一个整数代表因子和。
样例输入
4
1
2
3
4
样例输出
1
3
4
7
#include<stdio.h>
#include<math.h>
int main()
{
int t,m,fan,sum=0;
long int n,i;
scanf("%d",&t);
while(t--)
{
scanf("%ld",&n);
m=sqrt(n);
for(i=1;i<=m;i++)
{
if(n%i==0)
{
fan=n/i;
if(i==fan)
{
sum+=i;
}
else
{
sum+=fan+i;
}
}
}
printf("%d\n",sum);
sum=0;
}
return 0;
}