用C语言打印“完数”

来源:百度知道 编辑:UC知道 时间:2024/05/25 13:53:32

完数,即完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。其所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于本身。

根据该定义 可以得出判断完数的函数如下:

#include <stdio.h>
int is_perfect_number(int n)
{
    int i,s=0;
    for(i = 1; i <=n/2; i ++)
        if(n%i == 0) s+= i;//统计所有真因子的和。
    if(s == n) return 1;//如果与原值相等,则该数为完数。
    
    return 0;//不是完数。
}

根据该函数,只需要对需要打印的范围内所有数做遍历,并逐一调用该函数判断,如果返回1则打印即可。

以前写的。
/*一个数恰好等于它的因子之和.6=1+2+3*/
#include <stdio.h> /*头文件*/
#define N 1000 /*搜索范围在1000以内*/

int main(int argc, char *argv[]) /*主函数*/
{
int i; /*循环变量*/

for(i=1;i<=N;i++) /*循环找出小于N的所有完数并输出其因子.*/
{
if(wans