接上篇,相差为2的素数对称为孪生素数。
那么,存不存在相差为4,6,8...36...的素数对呢?如果有,能否输出满足该条件的10000内的素数对?有了Mathematic这样强大的工具,不难回答这个问题。
代码:
n = 10000;
f = {};
For[j = 4, j <= 36, j = j + 2, f = Append[f, {"相差", j, "开始输出"}];
For[i = 1, Prime[i] < n, i++,
If[Prime[i + 1] == Prime[i] + j,
f = Append[f, {Prime[i], Prime[i + 1]}]]];
f = Append[f, {"相差", j, "结束输出"}]];
f
截屏:
注意为什么没有寻找差为奇数(1除外)的素数对呢?因为除了2以外的素数都是奇数,奇数之差只能是偶数,所以差为奇数的素数对只有2和3了。