因子和。给一个正整数n,请求n所有因子的累加和
本帖最后由 我戒撸学汇编 于 2014-10-9 13:01 编辑Description
题目描述
给一个正整数n,请求n所有因子的累加和。
输入
每行一个整数n,1≤n≤100,000,000。如果n为0表示输入结束,不需要处理。
输出每行输出一个结果。
样例输入
1
2
3
4
0
样例输出
1
3
4
7
在学校网站上做的题目,初学C语言,菜的很,不懂什么算法,求各位高手指点下我,不胜感激。以下是我的代码,提交到学校网站上去提示Time Limit Exceed
#include <stdio.h>//1172.因子和
int main()
{ long n;
int i, sum;
while(scanf("%d", &n)&&n!=0)
{
sum = 0;
if(n==1){printf("1\n");continue;}
else
{
for(i=1;i<n/2+1;i++)
if(n%i==0)sum=sum+i;
printf("%d\n", sum+n);
}
}
return 0;
}
发上来代码的格式就乱七八糟了,还请见谅。
n=7的时候,结果是错的
页:
[1]