c语言编写完数的函数 用c语言写完数

c语言初学者 , 编写函数求完数(一个数恰好等于其因子和),求1000以内完数 。代码如下#includestdio.h
int perfect(int a)
{
int i, s=0;
for (i = 1; ia; i++)
{
if (a%i == 0)
s = s + i;
}
return (s == a);
}
int main()
{
int i,n;
for (i = 2; i =1000; i++)
{
if (perfect(i))
printf("%5d", i);
}
}
求高人用C语言函数写一个关于完数的代码void Solve(int num)
{
int sum = 0;
int i = 0;
if (num == 0)
{
printf("No\n");
}
else if (num == 1)
{
printf("Yes, its factors are %d\n", num);
}
else
{
for (i = 1; inum; i++)
{
if (num % i == 0)
{
sum += i;
}
}
if (sum == num)
{
printf("Yes, its factors are ");
for (i = 1; inum; i++)
{
if (num % i == 0)
{
printf("%d ", i);
}
}
printf("\n");
}
else
{
printf("No\n");
}
}
}
int main() //链表建立测试
{
int n;
while(scanf("%d", n) != EOF)
{
Solve(n);
fflush(stdin); //防止输入字母造成死循环
}
return 0;
}
怎么用C语言编写程序来找出2~5000中的完数?1、解题思路:所谓完数是一些特殊的自然数 。如果一个数恰好等于它的因子之和,则称该数为“完全数” 。先定义一个函数用于判断一个数是否是完数,接着依次从2到5000依次循环判断 。
2、参考代码:
#include stdio.h
int fun(int n){//判断n是否是完数
int i,sum=0;
for(i=1;in;i++)
if(n%i==0) sum+=i;
if(sum==i) return 1;
return 0;
}
int main ()
{
int i;
for(i=2;i5000;i++)
if(fun(i))
printf("%d ",i);
return 0;
}
3、运行结果:6 28 496
【c语言编写完数的函数 用c语言写完数】c语言编写完数的函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用c语言写完数、c语言编写完数的函数的信息别忘了在本站进行查找喔 。

    推荐阅读