将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5 用java实现
时间: 2024-10-12 20:15:51 浏览: 53
Java实现将一个正整数分解质因数
5星 · 资源好评率100%
将一个正整数分解质因数是一个常见的基础算法,它找出所有能整除该数的质数,并记录它们的幂次。下面是使用 Java 实现的一个简单函数:
```java
import java.util.ArrayList;
import java.util.List;
public class PrimeFactorization {
public static String primeFactorize(int num) {
List<String> factors = new ArrayList<>();
for (int i = 2; i * i <= num; i++) { // 只需要检查到 sqrt(num)
while (num % i == 0) { // 当i是因子时,将其加到列表并继续去除该因子
factors.add(i + " ");
num /= i;
}
}
if (num > 1) { // 如果 num 还大于 1,说明最后一个因子可能是质数
factors.add(num + " ");
}
return " = " + joinFactors(factors);
}
private static String joinFactors(List<String> factors) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < factors.size(); i++) {
if (i != 0) result.append(" * ");
result.append(factors.get(i));
}
return result.toString();
}
public static void main(String[] args) {
int number = 90;
System.out.println(primeFactorize(number)); // 输出:90 = 2 * 3 * 3 * 5
}
}
```
这个程序首先从 2 开始遍历到 `sqrt(num)`,找到每个因子并去除,然后检查剩余的部分是否还有因子。最后将结果连接成字符串格式输出。
阅读全文