c++弄一个程序来判断一个数字是不是完全数

c++弄一个程序来判断一个数字是不是完全数,第1张

/

6

6 = 1 + 2 + 3

28

28 = 1 + 2 + 4 + 7 + 14

1024

0

Press any key to continue

/

#include <stdioh>

#include <stdlibh>

int main() {

int i,j,n,num,sum,a[16];

while(scanf("%d",&num) == 1 && num > 0) {

j = 0;

sum = 0;

for(n = 1; n <= num / 2; ++n) {

if(num % n == 0) {

sum += n;

a[j++] = n;

}

}

if(sum == num) {

printf("%d = ",num);

for(i = 0; i < j; ++i) {

if(i == j - 1) printf("%d",a[i]);

else printf("%d + ",a[i]);

}

printf("\n");

}

}

return 0;

}

/完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)/

#include<stdioh>

void main()

{

int i,j,k,h,s,sum;

int a[200];//20个是不够的

s=0;

sum=0;

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

{

s=0;//此处s=0一定要加,因为前几次循环的时候s的值已经改变

k=0;

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

{

if((i%j)==0){a[k]=j;k++;}

}

for(h=0;h<k;h++)

{

s+=a[h];

}

if(i==s){printf("%d ",i);sum++;}

}

printf("完数的个数:%d\n",sum);

}

时间太紧,没注意程序的简洁性和效率,这个需要你自己改了!

1 #include <stdioh>

2

3 int main()

4 {

5 int i,sum,t=1;

6 while(t++)

7 {

8 sum=0;

9 for(i=1;i<t;i++)

10 if(t%i == 0)

11 sum+=i;

12 if(sum == t)

13 printf("%d\n", sum);

14 }

15 return 0;

16 }

改好了,看注释

#include<stdioh>

int main ()

{

int a = 1, i = 1, b = 0;

while (a <= 1000)

{

while (i < a) //不应该包括a本身

{

if (a % i == 0)

b += i; //多了++

i++;

}

if (b == a)

{

printf ("%d its factors are ", a);

i = 1;

while (i < a) //不应该包括a本身

{

if (a % i == 0)

printf ("%d,", i); //斜杠是干什么用的?多了++

i++;

}

printf("\n"); //加个换行

}

a++;

b = 0;

i = 1;

}

return 0;

}

以上就是关于c++弄一个程序来判断一个数字是不是完全数全部的内容,包括:c++弄一个程序来判断一个数字是不是完全数、C语言求完数、可以解释一下编写求完全数的程序的思路吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存