我戒撸学汇编 发表于 2014-10-9 12:57:54

因子和。给一个正整数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;
}
发上来代码的格式就乱七八糟了,还请见谅。



仰望天上的光 发表于 2014-10-9 16:38:16

n=7的时候,结果是错的

大个的糖果 发表于 2014-11-1 06:07:53

页: [1]
查看完整版本: 因子和。给一个正整数n,请求n所有因子的累加和