1.素数因子固定为2个
思路:先判断一个数是否为素数,再求解
如 15的素数因子为 3 和 5; 1和它本身不算
代码
class Solution {
public static void main(String[] args) {
int target = 121; 目标
double sqrt = Math.sqrt(target);
List<Integer> list = new ArrayList<>();
List<Integer> result = new ArrayList<>();
for (int i = 2; i <target; i++) {
if (isSu(i)) {
list.add(i);
}
}
for (Integer i : list) {
if (target % i == 0 && list.contains(target/i)
&& i <= sqrt) {
result.add(i);
result.add(target/i);
}
}
System.out.println(result);
}
//是否是素数判断
public static Boolean isSu(int input) {
double sqrt = Math.sqrt(input);
if (input < 2) {
return false;
}
if (input == 2 || input == 3) {
return true;
}
for (int i = 2; i<= sqrt; i++) {
if (input % i == 0) {
return false;
}
}
return true;
}
}