C 练习实例19

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

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

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

实例

// Created by www.icodebang.com on 15/11/9.
// Copyright © 2015年 本站教程. All rights reserved.
//
 
#include<stdio.h>
#define N 1000
int main()
{
 int i,j,k,n,sum;
 int a[256];
 for(i=2;i<=N;i++)
 {
 sum=a[0]=1;
 k=0;
 for(j=2;j<=(i/2);j++)
 {
 if(i%j==0)
 {
 sum+=j;
 a[++k]=j;
 }
 
 }
 if(i==sum)
 {
 printf("%d=%d",i,a[0]);
 for(n=1;n<=k;n++)
 printf("+%d",a[n]);
 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例

0 个评论

要回复文章请先登录注册