HDU-1215-七夕节

题目链接

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

题目要小小的变通一下,别想的太难了,有想法就去尝试,才有进步,

开始我直接求因子,求和,毫无疑问超时,什么时候题目这么容易了,显然不是,

变通啊,小小的变通一下,就能AC。一切都在代码中。

超时的代码

#include<stdio.h>
int main(void)
{
int t,n,i,j,k,l;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int s=0;
k=n/2;
for(i=1;i<=k;i++)
if(n%i==0)
s=s+i;
printf("%d ",s);
}
return 0;
}

AC代码

#include<stdio.h>
#include<math.h>
int main(void)
{
int t,n,i,j,k,l;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
if(n==1)
{
printf("0 ");
continue;
}
k=sqrt(n);
int s=0;
for(i=2;i<=k;i++)
{
l=n/i;
if(n%i==0)
{
if(i!=l)
s=s+i+l;
else
s=s+i;
}
}
printf("%d ",s+1);
}
return 0;
}

原文地址:https://www.cnblogs.com/liudehao/p/3967245.html