# 寻找孪生素数 数学家希尔伯特在1900年国际数学家大会的报告上提出一个“孪生素数猜想”,即: 存在无穷多个素数p,使得p + 2是素数。p和p+2这一对差为2的素数,被称为“孪生素数”。 看起来,这个猜想是成立的,我们总能找到很多对孪生素数,例如:3和5,5和7,11和13…… 这一猜想至今还未被证明。 现在,对于给定的整数n, 请寻找大于n的最小的一对孪生素数p和q(q=p+2)。 以下程序实现了这一功能,请你填补空白处的内容: ```cpp #include #include using namespace std; int sushu(int x) { if (x <= 1) return 0; int i, j = 1; for (i = 2; i <= sqrt(x); i++) { _______________ } return j; } int main() { int x; cin >> x; int i = x + 1; for (;; i++) { if (sushu(i) && sushu(i + 2)) break; } cout << i << ' ' << i + 2; return 0; } ``` ## template ```cpp #include #include using namespace std; int sushu(int x) { if (x <= 1) return 0; int i, j = 1; for (i = 2; i <= sqrt(x); i++) { if (x % i == 0) { j = 0; break; } } return j; } int main() { int x; cin >> x; int i = x + 1; for (;; i++) { if (sushu(i) && sushu(i + 2)) break; } cout << i << ' ' << i + 2; return 0; } ``` ## 答案 ```cpp if (x % i == 0) { j = 0; break; } ``` ## 选项 ### A ```cpp if (x % i == 0) { j = 0; continue; } ``` ### B ```cpp if (x % i == 1) { j = 0; break; } ``` ### C ```cpp if (x % i == 1) { j = 0; continue; } ```