package com.practice.test;
import java.util.Scanner;
public class Goldbach {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int a = cin.nextInt();
int j = 0;
int k = 0;
int i = 0;
int k1 = 0;
int n = 0;
boolean b = true;
boolean c = true;
if(a == 4){
i = 2;
j =2;
}
//如果是偶数4 则分解为两个2
//输入的值为偶数,所以除去4,其他数的分解不能有2存在
//所以i以3开始
else {
//判断第一个数是否为质数
for (i = 3; i <= a; i++) {
j = a - i;
for(n = 2;n < i; n++){
b = true;
k = i % n;
if(k == 0 ) {
b = false; //如果是质数就继续,不是就退出循环
break;
}
}
//判断第二个数是否为质数
for(n = 2; n < j ; n++){
c = true;
k1 = j % n;
if(k1 == 0 ) {
c = false;
break;
}
}
if (b && c) break; //i j都是质数才成立 否则循环继续
}
}
System.out.println(i);
System.out.println(j);
}
}
每一次循环都要使设定的boolean为true 否则会出现逻辑错误
代码很多书写都不太规范,设定的变量值都是为了完成题目随便设置的,看着可能比较难受
总感觉代码比较冗长,并不是最好的解决方案。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)