1. 程式人生 > 其它 >C語言例題——輸出1000以內的所有完數

C語言例題——輸出1000以內的所有完數

技術標籤:C語言c語言演算法

一個數如果恰好等於它的各個因子之和,這個數就稱為“完數”。例如,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語言,如有錯誤,還望指正。