C语言例题之输出1000以内的所有完数

 更新时间:2022年11月24日 09:23:51   作者:鑫宇_  
完数是一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身,如果一个数恰好等于它的因子之和,则称该数为“完数”,这篇文章主要给大家介绍了关于C语言例题之输出1000以内的所有完数的相关资料,需要的朋友可以参考下

一个数如果恰好等于它的各个因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,并按下面的格式输出其因子:

6 its factors are 1,2,3

#include "stdio.h"

void main() {
    int i, j, sum, k;
    for (i = 2; i <= 1000; i++) {
//        每判断一个数时,将sum置为0
        sum = 0;
//        这个地方不写“=”,排除这个数自身 真因子指的是除了自身以外的约数,完数概念中的“因子”是“真因子”
        for (j = 1; j < i; j++) {
//            如果能被整除,则j即为i的因子
            if (i % j == 0) {
//             将这个数的各个因子加起来
                sum += j;
            }

        }
//        说明这个数是完数,找到其因子并按照规定格式输出即可
        if (sum == i) {
//            输出前半部分 “x its factors are”
            printf("%d its factors are ", i);
//            输出这个数的每一个因子
            for (k = 1; k < i; k++) {
                if (i % k == 0) {
                    printf("%d,", k);
                }
            }
//          光标退到最后一个逗号位置之上然后输出空格使逗号消失
            printf("\b ");
//            换行
            printf("\n");

        }
    }
}

运行结果:

初学C语言,如有错误,还望指正,因考试需要,代码运行环境为:

不同编译器和不同版本C语言代码略有不同。

附:1000以内所有完数,并打印出因子——C语言

完数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完数”。

// 完数  真因子 
#include <stdio.h>

int main(){
	int i,j,k;
	printf("1000以内的所有完数:\n");
	for(i=1;i<=1000;i++){
		int sum=0;
		for(j=1;j<=i/2;j++){
			if(i%j == 0){
				sum += j; // 把所有的因子全部加起来 
			}	
		}
		if(sum == i){  // 加起来的因子和如果等于i,就是完数 
			printf("%d its factors are: ", i);
			for(k=1;k<=i/2;k++){
				if(i%k == 0){
					printf("%d, ", k);
				}	
			}
			printf("\n");
		}	
	}
	return 0;
} 

总结

到此这篇关于C语言例题之输出1000以内的所有完数的文章就介绍到这了,更多相关C语言输出1000内所有完数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言文件操作中 fgets与fputs 函数详解

    C语言文件操作中 fgets与fputs 函数详解

    这篇文章主要介绍了C语言文件操作中 fgets与fputs 函数详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • C语言深入探究水仙花数与变种水仙花数代码

    C语言深入探究水仙花数与变种水仙花数代码

    求水仙花数和变种水仙花数是非常适合初学者学习的代码,其中包含的循环和逻辑方式等知识点。这既能起到对以往知识的复习,也可以学习到一种不同的逻辑思考方式
    2022-05-05
  • C语言 变量详解及示例代码

    C语言 变量详解及示例代码

    本文主要介绍C语言 变量,这里整理了C语言 变量的基础知识,并附有示例代码和详细讲解,希望能帮助学习C语言的朋友
    2016-08-08
  • C++ 中时间与时间戳的转换实例详解

    C++ 中时间与时间戳的转换实例详解

    这篇文章主要介绍了C++ 中时间与时间戳的转换实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • C++实现统计代码运行时间计时器的简单实例

    C++实现统计代码运行时间计时器的简单实例

    这篇文章主要介绍了 C++实现统计代码运行时间计时器的简单实例的相关资料,需要的朋友可以参考下
    2017-07-07
  • C语言链表实现图书管理系统

    C语言链表实现图书管理系统

    这篇文章主要为大家详细介绍了C语言链表实现图书管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C++内存查找实例

    C++内存查找实例

    这篇文章主要介绍了C++内存查找实例,可实现Windows程序设计中的内存查找功能,需要的朋友可以参考下
    2014-10-10
  • C++空间命名的使用

    C++空间命名的使用

    本文主要介绍了C++空间命名的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • opencv实现轮廓高斯滤波平滑

    opencv实现轮廓高斯滤波平滑

    这篇文章主要为大家详细介绍了opencv实现轮廓高斯滤波平滑,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • C语言中函数栈帧的创建和销毁的深层分析

    C语言中函数栈帧的创建和销毁的深层分析

    在C语言中,每一个正在运行的函数都有一个栈帧与其对应,栈帧中存储的是该函数的返回地址和局部变量。从逻辑上讲,栈帧就是一个函数执行的环境:函数参数、函数的局部变量、函数执行完后返回到哪里等等
    2022-04-04

最新评论