鱼C论坛

 找回密码
 立即注册
查看: 3637|回复: 5

因子求和

[复制链接]
发表于 2019-11-1 15:53:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目描述
已知一个正整数N(20 <= N <= 800000000),请你编写程序求出该数的全部因子(不包括1)的和。


输入
N


输出
一个整数(因子和)


样例输入
24

样例输出
35

提示
24的因子有: 2、3、4、6、8、12,其和为 35

//总是超时 以下是我的代码:
#include <stdio.h>
int main()
{
int n,i,sum=0;
scanf("%d",&n); //输入整数
for(i=2;i<n;i++)
if(n%i==0)//判断是否为其因子
sum+=i;//累加起来
printf("%d\n",sum);//输出
}
求大佬解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-1 16:03:28 | 显示全部楼层
本帖最后由 jackz007 于 2019-11-1 16:08 编辑
#include <stdio.h>
int main()
{
        int n , i , sum = 0      ; 
        scanf("%d" , & n)        ; // 输入整数
        for(i = 2 ; i < n ; i ++) {
                if(n % i == 0) {   // 如果 n 可以被 i 整除
                        sum += i ; // 就把 i 累加到 sum 中
                }
        }
        printf("%d\n" , sum)     ; // 输出 sum
}

        利用 for 循环,在 2 ~ n - 1 的范围内,按照从小到大的顺序,枚举每一个整数 i,如果 n 除以 i 的余数为 0 (n % i == 0),那么,i 便是 n 的一个因子,把它加到 sum 里,最后,在循环结束后,打印出 sum 的数值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 16:10:39 | 显示全部楼层
jackz007 发表于 2019-11-1 16:03
利用 for 循环,在 2 ~ n - 1 的范围内,按照从小到大的顺序,枚举每一个整数 i,如果 n 除以 ...

超时呀!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-1 16:24:33 | 显示全部楼层

        "超时" 是何意?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-2 15:20:04 | 显示全部楼层
int fun(int n)
{
    int s = 0, i;
    for(i=2; i<n; i++)
        if (n%i==0) s = s + i;
    return s;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-3 14:57:09 | 显示全部楼层
我来水一水
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 19:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表