我想知道为什么这个Java程序无法找到数字的主要因素。我在此站点和其他地方看到了许多解决方案,但是我想知道为什么这种方法不够用,因为它仅返回1作为输出?第一个“ if语句”处理从1到更低的数字,以返回-1(无效值),谢谢。
public class PrimeFactors{
public static void main(String[] args) {
System.out.println(getPrimeFactors(4));
}
public static int getPrimeFactors(int number) {
if (number <= 1) {
return -1;
}
for (int i = 1; i <= number; i++) {
if (number % i == 0) {
return i;
}
}
return number;
}
}
答案 0 :(得分:3)
这里的代码将返回i的值,该值已设置为1。您对如何根据代码查找质数没有足够的了解。无论您将什么内容放入方法中,由于代码的设置方式,getPrimeFactors都将返回-1或1。数字除以1时的余数始终为0,因此始终为true,它将仅返回1。如果数字小于或等于1,则将返回-1。除非您修复语法,否则返回号本质上是无效代码。希望这对您有所帮助!