请老师们 看看 我这里哪里出现问题 ?谢谢。
public class java12 {
public static void main(String[] args) {
int num = Integer.parseInt(args[0]);
if (num <= 6) {
System.out.println("参数错误");
}
if (num % 2 != 0) {
System.out.println("参数错误");
}
java12 c = new java12();
for (int i = 3; i <= num/ 2; i++) {
if (i % 2 == 0) {
continue;
}
if (c.isPrime(i) && c.isPrime(num - i)) {
System.out.println(i + " " + (num- i) + " " + num);
}
}
}
private boolean isPrime(int n) {
boolean flag=true;
for(int i=2;i<n/2;i++){
if(n%i==0)
flag=false;
}
return flag;
}
}
java
------解决方案--------------------代码没问题啊,你传参数了么?
------解决方案--------------------isPrime函数有问题
for(int i=2;i<n/2;i++)应该判断到i<=n/2
另外如果"参数错误"可以不往下执行,退出程序
------解决方案--------------------1楼说的对,没传参数。
javac 路径 java12.java
java 路径 java12 "20"
应该可以吧
------解决方案--------------------没有什么问题,运行要输入参数才行
编译:javac java12.java
运行:java java12 "12" "10"
可以多测试几次比如java java12 "13" "11"
------解决方案--------------------没什么大问题,这块可以优化一下:
private boolean isPrime(int n) {
boolean flag=true;
for(int i=2;i<n/2;i++){
if(n%i==0){
flag=false;
break;//判断非质数了,马上结束。
}
}
return flag;
}