用C语言函数判断是否是完数

编写两个函数:函数factor(n)用来判断n是否为完数,函数prifac(n)用来显示完数n的所有因子,在主函数中调用这两个函数,显示1~30000间的所有完数。。。急... 编写两个函数:函数factor(n)用来判断n是否为完数,函数prifac(n)用来显示完数n的所有因子,在主函数中调用这两个函数,显示1~30000间的所有完数。。。
急需,,,。。谢高手指导。。。。。
展开
 我来答
飞喵某
高粉答主

2019-06-04 · 说的都是干货,快来关注
知道答主
回答量:631
采纳率:0%
帮助的人:29.4万
展开全部

1、首先打开C语言的编辑软件,这里是使用VS2017版,在c语言的文件中写入头文件和主函数备用:

2、首先是用scanf函数定义一个输入数字的功能,然后判断完数,通过取余(%)的方法来进行判断。如果判断出来取余结果为0,那么就把这些因子全部加起来,得到因子的和和与n进行比较,如果相等,那么就是完数,反之不是完数;最后需要输出结果:

3、最后使用快捷键crtl+F5编译调试一下程序,打开的命令行输入一个数字,按下回车后屏幕上就会显示该数是否为完数了。以上用C语言判断完数的操作:

乐跑小子
2016-01-14 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:7%
帮助的人:4682万
展开全部
#include<stdio.h>

void iswanshu(int x);

void main()

{

int a;

printf("判断是否是完数:\n请输入一个整数:");

scanf("%d",&a);

iswanshu(a);//调用下面的函数

}

//定义一个判断是否是完数的函数

void iswanshu(int x)

{

int i,k;

for(i=1;i<x;i++)

{

if (x%i=0) k=k+i;//如果被判断的那个数整除i余数为0则累加到k

}

//如果k等于x那输出的数就是完数

if(k=x)

{

printf("%d是完数\n",x);

printf("%d=1",x);

for(i=2;i<x;i++)

{

if (x%i=0) printf("+%d",i);

}

printf("\n");

}

else

printf("%d不是完数!",x);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超级奶爸头子
推荐于2018-02-28 · TA获得超过668个赞
知道小有建树答主
回答量:1111
采纳率:0%
帮助的人:611万
展开全部
我给你写了一个:累死了
#include <iostream.h>
void main()
{
int i,j,n=0;
for(i=1;i<=30000;i++)
{ n=0;
for(j=1;j<i;j++)
if(i%j==0)
n+=j;
if(n==i)
cout<<i<<"是完数"<<endl;}

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shitouwen
2008-12-04
知道答主
回答量:30
采纳率:0%
帮助的人:0
展开全部
用的是c++,c改下就行了
#include<iostream>
using namespace std;

int factor(int n)
{
int i,sum=0;
for(i=1;i<n/2+1;i++)
{
if(n%i==0)
sum+=i;
}
if(sum==n)
return 1;
else
return 0;
}

void prifac(int n)
{
int i;
cout<<n<<"因子:";
for(i=1;i<n/2+1;i++)
{
if(n%i==0)
cout<<i<<' ';
}
}
void main()
{
int n;
for(n=1;n<=30000;n++)
{
if(factor(n))
{
cout<<n<<endl;
prifac(n);
}

}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式