因子分解,直接暴力枚举了,时间不是很理想,水过去了
#include<stdio.h>
#include<math.h>
int factor_sum(int num)
{
if (num == 1)
return 0;
int i, sum = 1, n = (int) sqrt(num);
for (i = 2; i <= n; i++)
if (num % i == 0)
{
int div = num / i;
sum = i != div ? sum + i + div : sum + i;
}
return sum;
}
int main()
{
int n;
scanf("%d", &n);
while (n--)
{
int num;
scanf("%d", &num);
printf("%d\n", factor_sum(num));
}
return 0;
}