java最大素因子(返回)
public class LargestPrimeFactor {
public static void main(String args[]) {
System.out.println(prime(prime(600851475143L));
}
public static long prime(long x) {
long d = 0;
for (long s = x; s > 0; s--) {
if (x % s == 0)
d = s;
for (long sp = s; sp > 0; sp--) {
while (sp != 1) {
if (s % sp == 0) {
d = sp;
}
}
if (d == s) {
return d;
}
}
}
}
}
prime()方法一直要求我返回,我已经在代码中写过了。有什么我做得不对的吗?非常感谢。需要更多文本SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
# 1 楼答案
返回语句处于
if
条件下。在方法的右大括号前添加return
。也许在if
条件中加一个break
,在结束大括号之前加上return d
# 2 楼答案
这是因为您将return语句放在了if中。如果是d=你的方法是不返回任何东西