哥德巴赫猜想(1e5)

和自甴很熟 提交于 2020-01-21 23:45:21
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 10;
bool notprime[MAXN];
int n;
void init() {
	memset(notprime, false, sizeof(notprime));
	notprime[0] = notprime[1] = true;
	for (int i = 2; i < MAXN; i++) {
		if (!notprime[i]) {
			if (i > MAXN / i) continue;
			for (int j = i * i; j < MAXN; j += i) {
				notprime[j] = true;
			}
		}
	}
}
int main() {
	init();
	while (scanf("%d", &n) != EOF) {
		for (int i = 2; i <= n / 2; i++) {
			if (!notprime[i] && !notprime[n - i]) {
				printf("%d %d\n", i, n - i);
			}
		}
		printf("\n");
	}
	return 0;
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!