如何在fortran中找到给定范围内的孪生素数对

时间:2017-03-21 02:11:50

标签: numbers fortran primes

我想在fortran中创建一个程序,列出用户给出的范围n1到n2中的所有双素数对。我这样做了,但它没有用,我也不知道如何修复它:

value

如果我将范围1到10,它会打印几对8和10。

2 个答案:

答案 0 :(得分:1)

如何修复它是通过"调试器" (无论是真实的还是你的头),看看每个步骤后的变量和效果。

然而(尽管我的Fortran有点生疏),你似乎选择了一种特别低效的算法,它选择了许多素数对(在nexted循环中),然后评估它们的差异是否为2。

使用类似的东西会更简单:

for num = lower to upper - 2:
    if num is prime and (num + 2) is prime:
        output num, num + 2

答案 1 :(得分:0)

不是一个完整的答案,因为这是作业,但一种可能的方法是筛选素数的整个范围,然后搜索成对。另一个(较慢,但可能更简单,使用更少的内存)是对每个奇数进行试验,并记住最后一个奇数是否为素数。