http://acm.hdu.edu.cn/showproblem.php?pid=1215

求N因子的和,从1找到sqrt(n),成对的找,后面的用前面的除

View Code
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int gao(int n)
{
int s=0,i,cc;
cc=sqrt(n);
for(i=1;i<=cc;i++)
if(n%i==0&&n/i>cc&&n/i!=n)
s+=(i+n/i);
else if(n%i==0)
s+=i;
return s;
}
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%d\n",gao(n));
}
return 0;
}