【C語言】判斷某一正整數是否為完數


什么是完數?

如果一個數等於它的因子之和,則稱該數為“完數”(或“完全數”)。

例如,6的因子為1、2、3,而 6=1+2+3,因此6是“完數”。

程序框圖:m

 問題分析

根據完數的定義,解決本題的關鍵是計算出所選取的整數m(m的取值范圍不固定)的因子(因子就是所有可以整除這個數的數),將各因子累加到變量sum (記錄所有因子之和),若sum等於m,則可確認m為完數,反之則不是完數。

代碼:

#include<stdio.h>
int main()
{
    int m, n, sum = 0;
    printf("請輸入一個正整數:\n");
    scanf_s("%d", &m);
    for (n = 1; n < m - 1; n = n + 1)
        if (m % n == 0)
            sum = sum + n;
    if (m == sum)
        printf("該數是完數\n");
    else
        printf("該數不是完數\n");
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM