c语言编程笔录

首页 > C语言 > c语言

c语言

c语言输出完数及其因子

更新时间:2023-06-21

前言

在编程中,完数(Perfect Number)是指等于其所有因子之和的数。本问题需要使用C语言编写程序,找到给定范围内的完数及其因子。

步骤一:判断完数

要找到完数,我们需要遍历给定范围内的每个数,并判断其是否满足完数的定义。完数定义为:一个数等于它的所有因子之和(不包括自身)。因此,我们可以采取以下步骤:

  1. 定义一个变量来保存当前遍历的数
  2. 在遍历范围内的数时,用一个循环来计算因子之和
  3. 如果因子之和等于当前数,那么该数是完数,我们将其输出
#include<stdio.h>

int main() {
    int range;
    printf("请输入范围上限: ");
    scanf("%d", &range);

    printf("完数及其因子:\n");
    for (int num = 1; num <= range; num++) {
        int sum = 0;
        for (int i = 1; i < num; i++) {
            if (num % i == 0) {
                sum += i;
            }
        }
        if (sum == num) {
            printf("%d: ", num);
            for (int i = 1; i < num; i++) {
                if (num % i == 0) {
                    printf("%d ", i);
                }
            }
            printf("\n");
        }
    }

    return 0;
}

步骤二:计算因子

在以上代码中,我们使用了两个嵌套循环来计算因子之和和输出因子。第一个循环用于遍历给定范围内的每个数,第二个循环用于求出当前数的因子。我们采用以下步骤计算因子:

  1. 使用一个循环从1到当前数之间遍历
  2. 如果当前数能被循环变量整除,那么该循环变量就是当前数的因子
  3. 将因子输出

步骤三:程序执行示例

让我们通过一个示例来展示程序的输出。假设我们输入范围上限为28:

请输入范围上限: 28
完数及其因子:
6: 1 2 3 
28: 1 2 4 7 14 

从示例可以看出,范围内的完数是6和28,它们的因子分别是1、2、3和1、2、4、7、14。

总结

通过以上的代码,我们能够找到给定范围内的完数及其因子。这个程序通过遍历每个数,并计算其因子之和来判断完数。这个程序可以帮助我们更好地理解完数的概念,并为我们提供完数的因子信息。