- 主题
- 0
- 帖子
- 4
- 精华
- 0
- 积分
- 17
- C币
- 7 枚
- 在线时间
- 0 小时
- 注册时间
- 2010-1-25
- 最后登录
- 2010-1-25
- 性别
- 保密

- 主题
- 0
- 帖子
- 4
- C币
- 7 枚
- 在线时间
- 0 小时
|
发表于 2010-1-25 18:12:17
|显示全部楼层
完数就是一个数的所有因子之和等于其本身,这个程序时输出2--n 之间的完数,n是由键盘读入一个数字
#include <stdio.h>
#include <stdlib.h>
#define N 50
main()
{
int a,b,c,d,e;
int n,f,g[N];
int sum;
sum=0;
b=0;c=0;d=0;e=0;
printf("请输入一个数字:");
scanf("%d",&n);
for(a=2;a<=n;a++)
{
for(c=1;c<a;c++)
{
if(a%c==0)
g[d++]=c;}
for (f=0;f<=d;f++)
sum+=g[f];
if(sum==a)
{
printf("%-3d",a);
e++;
if(e%5==0)
printf("\n");
}
}
system("pause");
}
思路是先输入一个区间。然后拿数给他除,若是因子就放到数组里。不是就舍弃。最后相加,然后用SUM同原来的数比较,看看是否相等,相等就输出。不相等就继续循环 |
|