|
睡神
发表于 2024-7-7 11:26
本帖最后由 睡神 于 2024-7-10 22:56 编辑 重新改动MMA代码,需要手动改变$n$的值,输出区间内所有的孪生素数对,并统计数量.
问题一MMA代码:
- (*定义孪生素数检查函数*)
- IsTwinPrimePair[{a_, b_}] := PrimeQ[a] && PrimeQ[b] && b - a == 2
- (*定义找到第n个素数的函数*)
- FindPrime[n_] := Nest[NextPrime, 2, n - 1]
- (*主程序,找到指定区间内的孪生素数对并统计数量*)
- FindTwinPrimesInInterval[n_] :=
- Module[{p1, p2, twins, count}, p1 = FindPrime[n];
- p2 = NextPrime[p1];
- twins =
- Select[Table[{i, i + 2}, {i, p1^2 + 1, p2^2 - 1}], IsTwinPrimePair];
- count = Length[twins];
- {twins, count}]
- (*使用例子*)
- {twins, count} = FindTwinPrimesInInterval[100];
- Print["孪生素数对: ", twins];
- Print["孪生素数对数量: ", count];
复制代码
已验证$1\le n \le 401$,问题一均成立 |
|