程序44 题目:一个偶数总能表示为两个素数之和
(啰嗦两句 这道题目其实是很简单的,但是我的代码是比较长的 因为我完善了一下题目的要求,加入和题目相关的知识 ,毕竟题目不是单纯的完成就可以了,我们要从中学到知识。
我下面的代码要详细的注释 从中可以知道键盘的输入,集合的创建和使用 以及语句的判断等知识)
代码如下
:
public class java44 {
int i = 0;
int[] a = new int[20];
// 输入一个偶数,如果输入的是偶数的话 那么就让它再次输入
public int input() {
System.out.println("请输入一个偶数");
// 从键盘输入一个字符串
Scanner sc = new Scanner(System.in);
// 将其转换成int型
a[i] = sc.nextInt();
if (a[i] % 2 != 0) {
System.out.println("输入的不是偶数 请重新输入");
i++;
input();
}
return a[i];
}
// 求从1到输入的这个数之间的素数
public ArrayList<Integer> sushu(int number) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
for (int i = 2; i < number; i++) {
boolean b = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
b = false;
break;
}
}
if (b) {
list.add(i);
}
}
System.out.println("在" + number + "之间的素数有");
System.out.println(list);
return list;
}
// 判断输入的偶数 是否可以使两个素数的和
public void judge(ArrayList<Integer> list, int number) {
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size(); j++) {
if (number == list.get(i) + list.get(j)) {
System.out.println("输入的偶数" + number + "是" + list.get(i)
+ "和" + list.get(j) + "这两个素数的和");
}
}
}
}
public static void main(String[] args) {
java44 test = new java44();
int number = test.input();
System.out.println(number);
ArrayList<Integer> list = test.sushu(number);
test.judge(list, number);
}
}