
```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。
4. 内部循环计算数字i的所有真因子之和。
5. 如果该总和等于数字i本身,则输出该数字,即它是一个完全数。
6. 最后返回0结束程序。
注意,此代码中包含了一个优化,即内部循环只需要手宴遍历1到i的一半,因为大于i的一半的因子已经在之前被计算过了。
给橘塌你代码------------------------------------------------------------------------
import java.util.Scanner
public class Excel {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in)
int n = sc.nextInt()
for (int i = 1i <圆并圆= ni++) {
execute(i)
}
}
public static void execute(int n) {
String str = "蔽雹"
int sum = 0
for (int i = 1i <= n / 2i++) {
if (n % i == 0) {
str += i + " "
sum += i
}
}
if (sum == n) {
System.out.println(n + " its factors are " + str)
}
}
}
1、首先打开vc6.0,新建一个项目。
2、然后添加头文件。
3、接着添加main函数。
4、然后定义i,j,k,n,sum。
5、接着定义一个数组。
6、然后使用第一层for循环。或好郑
7、接着使用第二层for循环袜启,用衫颂来求出每位的数字。
8、使用if条件判断语句。
9、最后运行程序看看结果。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)