找出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;  
}
相关推荐
稚南城才子,乌衣巷风流6 分钟前
换根法(Rerooting)算法详解
算法
晓子文集11 分钟前
Tushare接口文档:期货交易日历(fut_trade_cal)
大数据·算法
^yi1 小时前
【Linux系统编程】进程状态的理解
算法·僵尸进程·孤儿进程·进程状态·挂起状态·阻塞状态
冻柠檬飞冰走茶2 小时前
PTA基础编程题目集 7-7 12-24小时制(C语言实现)
c语言·开发语言·数据结构·算法
长不胖的路人甲2 小时前
二叉排序树(BST)Java 完整实现 + 删除思路详解
java·开发语言·算法
geovindu2 小时前
python: Breadth First Search Algorithm and Depth First Search Algorithm
开发语言·后端·python·算法·搜索算法
长不胖的路人甲2 小时前
可达性分析法(根搜索算法)完整详解
java·jvm·算法
paeamecium3 小时前
【PAT甲级真题】- Kuchiguse (20)
数据结构·c++·python·算法·pat考试·pat
青山木3 小时前
Hot 100 --- 全排列
java·数据结构·算法·leetcode·深度优先
海兰3 小时前
【高速缓存】RedisVL 存储类型选择指南:Hash 与 JSON
人工智能·redis·算法·缓存·json·哈希算法