我必须写一个递归的方法来寻找一个传入的数的素数因子。素因子应该以字符串的形式返回,其中素因子由空格分隔,并按从最小到最大、从左到右的顺序排列。如果传入的数字是prime,则应返回字符串“prime”。我给这个程序以下的内容
FindPrime p10 = new FindPrime(408);
我应该得到:2x2x3x17,但是输出是:
2x2x2x3x4x4xprime number
这是我编写的程序
public class FindPrime{
public int div = 2;
public FindPrime(int i) {
System.out.println(i + " factorization:");
findPrime(i);
System.out.println();
}
public void findPrime(int num) {
if(num == 1) {
System.out.println("prime number");
return;
}
else if(num % div == 0) {
System.out.print(div + "x");
findPrime(num/div);
}
else {
div++;
System.out.print(div + "x");
findPrime(num/div);
}
}
}
有人能帮忙吗?我不知道还能去哪里
1条答案
按热度按时间ufj5ltwl1#
这是因为:
首先,在else语句中,为什么要分开(
findPrime(num/div);
)第二,不知道是什么
if(num == 1)
方法所以应该是这样的: