首页 > 编程语言 > C/C++开发 > 如何用c语言编程求1000以内所有的完数(c语言编程找出1000以内所有完数)
2022
05-17

如何用c语言编程求1000以内所有的完数(c语言编程找出1000以内所有完数)

很多人说C语言是学生时代的福音,利用它可以帮助许多学生党解决许多问题。今天编程学习网就给大家分享一下如何使用C语言编程求完数。

首先我们需要了解一下什么是完数,在数学中如果一个数刚好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3,接下来就用C语言编程找出1000以内的所有完数。

程序分析:

对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

代码实现:


#include <stdio.h>
int main(void)
{
    static int k[10];
    int i, j, n, s;
    for (j = 2; j < 1000; j++)
    {
        n = -1;
        s = j;
        for (i = 1; i < j; i++)
        {
            if ((j % i) == 0)
            {
                n++;
                s = s - i;
                k[n] = i;
            }
        }
        if (s == 0)
        {
            printf("%d is a perfect number ", j);
            for (i = 0; i < n; i++)
                printf("%d,", k[i]);
            printf("%d\n", k[n]);
        }
    }
  return 0;
}
运行结果:


6 is a perfect number 1,2,3
28 is a perfect number 1,2,4,7,14
496 is a perfect number 1,2,4,8,16,31,62,124,248

以上就是“如何用c语言编程求1000以内所有的完数(c语言编程找出1000以内所有完数)”的详细内容,想要了解更多C语言教程相关内容,欢迎持续关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取