java输入一个正整数n,输出n的所有质因数。 Input 一个正整数n (1 <= n <= 1000) Output 按照从小到头的顺序输出n的所有质因数,每个质因数占一行。
时间: 2024-09-28 11:05:01 浏览: 48
delete--number.rar_K._delete namber_delete number_给定n位正整数
5星 · 资源好评率100%
在Java中,你可以编写一个程序来实现这个功能。首先,需要创建一个函数来判断一个数是否是质数,然后遍历从2到`sqrt(n)`范围内的所有数字,检查它们能否整除`n`。如果能,就将该数作为质因数,并更新`n`值以便后续只查找剩余部分的因子。当`n`变成1时,说明已经找到所有的质因数。
以下是一个简单的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class PrimeFactors {
public static void main(String[] args) {
int n = 12345; // 输入的正整数
List<Integer> factors = findPrimeFactors(n);
for (int factor : factors) {
System.out.println(factor);
}
}
public static List<Integer> findPrimeFactors(int num) {
List<Integer> factors = new ArrayList<>();
while (num > 1) {
if (isPrime(num)) {
factors.add(num);
}
num /= getPrimeFactor(num);
}
return factors;
}
private static boolean isPrime(int number) {
if (number < 2) return false;
for (int i = 2; i * i <= number; i++) {
if (number % i == 0) return false;
}
return true;
}
private static int getPrimeFactor(int num) {
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return i;
}
}
return num; // 如果num本身就是质数,返回它
}
}
```
当你运行此程序并提供一个正整数`n`作为输入,它会输出`n`的所有质因数。
阅读全文