//一个数如果恰好等于除它本身外的因子之和,这个数被成为”完数”,例如: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;//每判断一个数,就初始化一次
}
}
#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;//每判断一个数,就初始化一次
}
}