编程找出m~n之间的所有完数,m和n为从键盘输入的两个整数。一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3。
时间: 2023-06-05 11:48:12 浏览: 101
以下是Python代码实现:
m = int(input("请输入m:"))
n = int(input("请输入n:"))
for num in range(m, n+1):
factors = []
for i in range(1, num):
if num % i == 0:
factors.append(i)
if sum(factors) == num:
print(num, "是完数")
相关问题
Java语言编程找出m~n之间的所有完数,m和n为从键盘输入的两个整数。一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3。
import java.util.Scanner;
public class PerfectNumber {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入两个正整数,中间用空格隔开:");
int m = scan.nextInt();
int n = scan.nextInt();
//遍历m到n之间的每个整数
for(int i=m;i<=n;i++){
int sum = 0;
//寻找因子
for(int j=1;j<i;j++){
if(i%j==0){
sum += j;
}
}
//判断是否为完数
if(sum==i){
System.out.print(i+" ");
}
}
}
}
java程序:编程找出m~n之间的所有完数,m和n为从键盘输入的两个整数。一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3。
```java
import java.util.Scanner;
public class PerfectNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入m和n的值:");
int m = input.nextInt();
int n = input.nextInt();
for (int i = m; i <= n; i++) {
if (isPerfectNumber(i)) {
System.out.println(i + "是完数");
}
}
}
public static boolean isPerfectNumber(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum == num;
}
}
```