数学家希尔伯特在1900年国际数学家大会的报告上提出一个“孪生素数猜想”,即: 存在无穷多个素数p,使得p + 2是素数。p和p+2这一对差为2的素数,被称为“孪生素数”。
看起来,这个猜想是成立的,我们总能找到很多对孪生素数,例如:3和5,5和7,11和13…… 这一猜想至今还未被证明。
现在,对于给定的整数n, 请寻找大于n的最小的一对孪生素数p和q(q=p+2)。
以下程序实现了这一功能:
#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; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)