java输入一个正整数n,输出n的所有因子。 Input 一个正整数n(1 <= n <= 1000) Output 按照从小到头的顺序输出n的所有因子,每个因子占一行。
时间: 2024-09-28 22:04:55 浏览: 38
大于1 的正整数n可以分解为:n=x1*x2*…*xm。
5星 · 资源好评率100%
在Java中,你可以通过循环遍历从1到`sqrt(n)`(取整)的所有数字来找出给定正整数n的所有因子。这是因为如果有一个因子大于`sqrt(n)`,那么它的另一个因子会小于`sqrt(n)`。以下是实现这个功能的一个简单示例:
```java
import java.util.Scanner;
public class FactorFinder {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数n (1 <= n <= 1000): ");
int n = scanner.nextInt();
// 检查输入是否有效
if (n < 1 || n > 1000) {
System.out.println("输入超出范围,请重新输入!");
return;
}
System.out.println("因子列表:");
for (int i = 1; i * i <= n; i++) {
if (n % i == 0) {
// 输出较小的那个因子
System.out.println(i);
// 如果i不是n的平方根,说明还有一个因子是n除以i的结果
if (i != n / i) {
System.out.println(n / i);
}
}
}
}
}
```
当你运行此程序并输入一个正整数n,它将输出所有小于或等于n的因子。
阅读全文