java输入一个整数 N <= 1000按照从小到大的顺序输出它的全部约数
时间: 2024-09-21 09:13:52 浏览: 45
统计n个实数的最大最小值并输出(java)
在Java中,你可以通过遍历从1到`sqrt(N)`的所有数字,并检查它们是否能整除N来找出N的所有约数。这是因为如果有一个因子大于`sqrt(N)`,那么它的配对因子必然小于`sqrt(N)`。以下是实现这个功能的一个简单示例:
```java
import java.util.ArrayList;
import java.util.List;
public class PrimeFactors {
public static void printDivisors(int N) {
List<Integer> factors = new ArrayList<>();
// 遍历可能的因子
for (int i = 1; i * i <= N; i++) {
if (N % i == 0) {
// 如果i是因子,添加到列表中
factors.add(i);
// 如果i不是N的平方根,那么另一个因子会是N / i
if (i != N / i) {
factors.add(N / i);
}
}
}
// 输出约数,按升序排列
factors.sort(Integer::compareTo);
for (int factor : factors) {
System.out.print(factor + " ");
}
}
public static void main(String[] args) {
int N = 12; // 替换为你想要查找约数的整数
printDivisors(N);
}
}
```
在这个程序里,`printDivisors`方法首先创建一个空列表存储约数,然后检查每个数是否是N的因子并添加到列表中。最后,将列表排序并打印出来。
阅读全文