1. 程式人生 > >如果一個正整數m的所有小於m的不同因子(包括1)加起來正好等於m本身,那麼就被稱它為完全數。它是指這樣的一些特殊的自然數,它所有的真因子(即除了自身以外的約數)的和,恰好等於它本身。 注意:1沒有真因

如果一個正整數m的所有小於m的不同因子(包括1)加起來正好等於m本身,那麼就被稱它為完全數。它是指這樣的一些特殊的自然數,它所有的真因子(即除了自身以外的約數)的和,恰好等於它本身。 注意:1沒有真因

#include<stdio.h>
int IsPerfect(int x);
int main ()
{
    int m;
    printf("Input m:\n");
    scanf("%d", &m);
    if (m > 1)
    {
        if (IsPerfect(m))
            printf("%d is a perfect number\n", m);
        else
            printf("%d is not a perfect number\n", m);
    }
    else
        printf("%d is not a perfect number\n", m);
}
int IsPerfect(int x)
{
    int i, sum = 1;
    for (i = 2; i < x; i++)
    {
        if (x % i == 0)
            sum =sum+ i;
    }
    if (sum == x)
        return 1;
    else
 
        return 0;
}