C语言大一新生,求详解
C语言大一新生,求详解
C语言大一新生,求详解

注释如下:
参考链接:
C 练习实例19 | 菜鸟教程
C 练习实例19 C 语言经典100例 题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。 程序分析:请参照:C 练习实例14。 实例 [mycode3 type='cpp'] // Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserv..
https://www.runoob.com/cprogramming/c-exercise-example19.html
C语言-求完数简单算法_c语言中完数的求法-CSDN博客
文章浏览阅读1.3k次,点赞3次,收藏5次。一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如6=1+2+3,编程找出1000以内的所有完数。_c语言中完数的求法
https://blog.csdn.net/Ian1025/article/details/133826522
// Created by www.runoob.com on 15/11/9.
// Copyright ? 2015年 菜鸟教程. All rights reserved.
//
#include<stdio.h>
#define N 1000
int main()
{
// https://www.runoob.com/cprogramming/c-exercise-example19.html
int i,j,k,n,sum;
int a[256]; // 存储因子的数组
for(i=2;i<=N;i++) // 遍历2到N之间所有的整数
{
sum=a[0]=1; // 当前i的第一个因数为1
k=0; // 因子数组a的下标变量k初始化为0
// https://blog.csdn.net/Ian1025/article/details/133826522
for(j=2;j<=(i/2);j++) // 遍历当前i除1外的所有可能因子
{
if(i%j==0) // 如果当前的数j是i的因子,则将其存入因子数组a中
{
sum+=j; // 累积当前i的因子和
a[++k]=j;
}
}
if(i==sum) // 如果当前i等于其因子和,则i是完数,打印其因子数组中的所有整数
{
printf("%d=%d",i,a[0]); // 打印当前整数i的第一个因子1
for(n=1;n<=k;n++) // 打印当前整数i的其他因子
printf("+%d",a[n]);
printf("\n");
}
}
return 0;
}
