用JAVA编写读入一个整数显示它的所有素数因子,给出完整代码
时间: 2024-09-11 14:06:40 浏览: 55
在Java中,我们可以编写一个程序来读取一个整数,然后找出并打印出它的所有质因数。这里是一个简单的示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class PrimeFactors {
public static void main(String[] args) {
int num = getIntegerFromUser(); // 输入的整数
List<Integer> factors = findPrimeFactors(num);
System.out.println("The prime factors of " + num + " are: " + factors);
}
private static int getIntegerFromUser() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer: ");
return scanner.nextInt();
}
private static List<Integer> findPrimeFactors(int number) {
List<Integer> factorsList = new ArrayList<>();
for (int i = 2; i <= Math.sqrt(number); i++) {
while (number % i == 0) {
if (isPrime(i)) {
factorsList.add(i);
}
number /= i; // 因式分解
}
}
// 如果 number 还大于 1,说明它本身也是一个质因数
if (number > 1) {
factorsList.add(number);
}
return factorsList;
}
// 判断一个数是否为质数
private static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
```
在这个代码中,我们首先从用户那里获取一个整数,然后通过`findPrimeFactors`函数找出其质因数。函数内部循环遍历到该数的平方根,因为如果有一个因子大于其平方根,那么另一个对应因子一定小于这个平方根。`isPrime`函数用于检查一个数是否为质数。
阅读全文