20分钟通关,看起来很难,实际上操作起来只需要注意我的三重嵌套循环就行
掌握重点
- 方法的灵活运用
- 素数的判断手法
通关代码
public class GeTest {
// 判断整数是否是素数
public static boolean isPrime(int x){
for(int y=2;y<x;y++){
if(x%y==0){
return false;
}
}
return true;
}
public static void main(String[] args) {
for (int i = 7; i < 100; i++){
//执行过2 + 5 后,程序出现再次执行 5 + 2一次,解决这个问题的方法是什么
for (int j = 2; j < i - j + 1; j++){ //关键点来了 j < i - j + 1,你问我这句啥意思,不好意思,自己去理解
for (int z = i; z > 1; z--){
if (((j + z) == i) && isPrime(j) == true && isPrime(z) == true){
System.out.println(i+ "可分解为素数" + j + "和素数" + z);
// if (j == i && i == z)
}
}
}
}
/********** End **********/
}
}
结论
整体难度不高,因为isPrime方法直接给了,只需要按格式打印就行了
关键语句
for (int j = 2; j < i - j + 1; j++) //目的,执行过2 + 5后不再执行 2 + 5并且可以执行 5 + 5这样的语句