用c语言怎样编写n个数以内的完全数的程序

用c语言怎样编写n个数以内的完全数的程序,第1张

完全数是指所有真因子之和等于该数本身的正整数。可以使用以下C语言代码来找出小于等于n(n为正整数)的完全数:

```c

#include <stdio.h>

int main() {

int n, i, j, sum

printf("请输入一个正整数n:")

scanf("%d", &n)

for (i = 1i <= n++i) {

sum = 0

for (j = 1j <= i / 2++j) {

if (i % j == 0) {

sum += j

}

}

if (sum == i) {

printf("%d\n", i)

}

}

return 0

}

```

解释如下:

1. 首先,定义变量n、i、j和sum。

2. 要求用户输入n。

3. 使用两个嵌套的循环来遍历从1到n的每个数字

4. 内部循环计算数字i的所有真因子之和。

5. 如果该总和等于数字i本身,则输出该数字,即它是一个完全数。

6. 最后返回0结束程序。

注意,此代码中包含了一个优化,即内部循环只需要遍历1到i的一半,因为大于i的一半的因子已经在之前被计算过了。

改好了,看注释

#include<stdio.h>

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

}


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

原文地址: https://outofmemory.cn/yw/11120537.html

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

发表评论

登录后才能评论

评论列表(0条)

保存