完数

2021-10-19  本文已影响0人  一路向后

1.问题描述

求某一范围内完数的个数
如果一个数等于它的因子之和,则称该数为完数(或完全数)。例如,6的因子为1,2,3,而6=1+2+3,因此6是完数。

2.问题分析

根据完数的定义,解决本题的关键是计算出所选取的整数i的因子,将各个因子累加到变量s,若s等于i,则可认为i为完数。

3.源码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    int n = 0;
    int s = 0;
    int i, j;

    scanf("%d", &n);

    for(i=1; i<n; i++)
    {
        s = 0;

        for(j=1; j<i; j++)
        {
            if(i % j == 0)
            {
                s += j;
            }
        }

        if(s == i)
        {
            printf("%d\n", s);
        }
    }

    return 0;
}

4.编译源码

$ gcc -o test test.c -std=c89

5.运行及其结果

./test
10000
6
28
496
8128
上一篇 下一篇

猜你喜欢

热点阅读