对正整数分解质因数
质数是指大于1,又只能被1和本身整除的自然数。由质数相乘得到但不是质数的数叫做合数。
如果一个正整数不能被大于等于2且小于等于其平方根的数整除,那么可以确定这个正整数的质因数只有它本身。
递归求解的代码如下:
public void fjzys(int num) {
int pfg = (int) Math.sqrt(num);//求平方根
if (pfg < 2) {
System.out.println(num);
return;
}
int shang = 0;
for (int i = 2; i <= pfg; i++) {
int yu = num % i;
if (yu == 0) {
System.out.print(i + "*");
shang = num / i;
break;
}
}
if (shang == 0) {
System.out.println(num);
} else {
fjzys(shang);//递归
}
}
测试用例:
@Test
public void tests() {
int num=234;
System.out.print(num+"=");
fjzys(num);
}