找出1000以内的所有的完数

完数的概念:完数(Perfect Number)是一个正整数,它等于除了它本身以外所有正因子之和。例如,6的因子有1、2、3和6,其中1+2+3=6,所以6是一个完数。

c 复制代码
#include <stdio.h>  
  
// 函数用于计算一个数的所有正因子之和  
int sum_of_divisors(int n) {  
    int sum = 0;  
    for (int i = 1; i < n; i++) {  
        if (n % i == 0) {  //余数为0,代表是当前i是n的因子 
            sum += i; //把所有因子求和 
        }  
    }  
    return sum;  
}  
  
int main() {  
    // 遍历1到1000的所有整数  
    for (int n = 1; n <= 1000; n++) {  
        // 计算n的所有正因子之和  
        int sum = sum_of_divisors(n);  
        // 判断如果和sum等于n,则n是完数  
        if (sum == n) {  
            printf("%d ", n);  
        }  
    }  
    printf("\n");  
    return 0;  
}
相关推荐
爪哇部落算法小助手3 分钟前
每日两题day61
数据结构·c++·算法
Swift社区3 分钟前
LeetCode 439 - 三元表达式解析器
算法·leetcode·ssh
小殊小殊4 分钟前
重磅!DeepSeek发布V3.2系列模型!
论文阅读·人工智能·算法
裤裤兔5 分钟前
利用matlab进行FDR校正的实现方式
数据结构·算法·matlab·多重比较矫正·校正·fdr
野蛮人6号5 分钟前
力扣热题100道之31下一个排列
算法·leetcode·职场和发展
子一!!6 分钟前
哈希桶,元素插入逻辑实现
算法·哈希算法
敲代码的嘎仔6 分钟前
LeetCode面试HOT100——160. 相交链表
java·学习·算法·leetcode·链表·面试·职场和发展
吃着火锅x唱着歌6 分钟前
LeetCode 454.四数相加II
算法·leetcode·职场和发展
敲代码的嘎仔8 分钟前
LeetCode面试HOT100—— 206. 反转链表
java·数据结构·学习·算法·leetcode·链表·面试
自然语10 分钟前
深度学习时代结束了,2025年开始只剩下轮廓
数据结构·人工智能·深度学习·学习·算法