c语言:完全数程序

c语言:完全数程序,第1张

如果想显示完全数的因子的话,用数组存储比较合适。你的程序有个逻辑错误。

if(a%b==0)你忘记还有自身也是自身的因子数,导致后面的判别式永远不成立,应改为

if(a%b==0&&a!=b)

自己改了下用数组的:

#include<stdioh>

int

main()

{

int

k[20],a,b,c;

for(a=2;a<=1000;a++)

{c=0;

for(b=1;b<=a;b++)

{

if(a%b==0&&b!=a)

{

k[c]=b;

c++;

}

if(b==a){

int

num=0;

for(int

i=0;i<c;i++)

num=num+k[i];

if(num==a){

printf("%d

",a);

printf("its

factors

is

:

");

for(int

i=0;i<c;i++)

printf("%d

",k[i]);

printf("\n");

}

}

}

}

return

0;

}

#include<stdioh>

void main()

{

int m,s,i;

for(m=2;m<1000;m++)

{

s=0;

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

if((m%i)==0)s=s+i;

if(s==m)

{printf("%d=",m);

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

if(m%i==0 && i==1) printf("%d",i); / 修改 /

elseif(m%i==0)printf("+%d",i); / 添加 /

printf("\n");

}

}

}

以1000以内的完全数为例:

#include<iostream>

using namespace std;

int main()

{

int x,i,sum;

x=1;

while(x<=1000) //x要从1到1000循环。

{

sum=0; //每算一个新的x时,sum要清0

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

{

if(x%i==0) sum+=i; //如果i是x的因子,sum加上i

}

if(x==sum) //如果因子和等于本身

cout<<x<<' '<<endl;

x++;         

}       

return 0;

}

扩展资料:

c++参考函数

double ceil(double x) 返回不小于x的最小整数

double floor(double x) 返回不大于x的最大整数

void srand(unsigned seed) 初始化随机数发生器

int rand() 产生一个随机数并返回这个数

double poly(double x,int n,double c[])从参数产生一个多项式

double modf(double value,double iptr)将双精度数value分解成尾数和阶

参考资料来源:百度百科-C++

以上就是关于c语言:完全数程序全部的内容,包括:c语言:完全数程序、C语言求完数的程序、C++求完全数的程序怎么写啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9806778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存