现在位置: 首页 > C 教程 > 正文

C 练习实例19

C 语言经典100例 C 语言经典100例

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数",例如 6=1+2+3 ,请编程找出 1000 以内的所有完数。

程序分析:请参照:C 练习实例14

实例

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include <stdio.h> int main() { int i, j, sum; printf("1000以内的完数有:\n"); for (i = 1; i <= 1000; i++) { sum = 0; // 每次循环前重置sum // 找出i的所有真因子并求和 for (j = 1; j < i; j++) { if (i % j == 0) { sum += j; } } // 如果和等于i本身,则是完数 if (sum == i) { printf("%d = 1", i); // 所有完数都包含1 // 打印其他因子 for (j = 2; j < i; j++) { if (i % j == 0) { printf(" + %d", j); } } printf("\n"); } } return 0; }

以上实例输出结果为:

6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248

C 语言经典100例 C 语言经典100例