寻找完数

来源:互联网 发布:在美国读高中知乎 编辑:程序博客网 时间:2024/04/29 04:41
//一个数如果恰好等于除它本身外的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数
#include <stdio.h>


int wanshu(int n);
int main()
{
int m;//m是输入的数字


printf("请输入一个数:\n");
scanf("%d",&m);
ptintf("这个数的完数是:\n");
wanshu(m);


printf("\n");
    return 0;
}


int wanshu(int n)
{
int i,j;//i用来判断1~N的数
int s = 0;//sy用来求和
int t = 0;//t判断是否是因子


for(i = 1;i <= n;i++)
{
for(j = 1;j < i;j++)//j是除了i本身之外的1-i-1的数
{
t = i % j;
if (t == 0)
{
s += j;
}
}

if (s == i)//满足完数条件就输出
{
printf("%d\t",i);
}
s = 0;//每判断一个数,就初始化一次
}
}
0 0
原创粉丝点击