【程序44】 题目:一个偶数总能表示为两个素数之和。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012249177/article/details/49560543

程序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);
	}
}


 

阅读更多

没有更多推荐了,返回首页