Je veux créer un programme qui trouve des nombres premiers jumeaux dans une certaine plage, de n à m. Ici, il est ce que j'ai jusqu'à présent:Comment trouver un nombre premier double dans une plage déterminée par l'utilisateur dans Fortran
program twin
implicit none
integer i, count1, n, m, count2, j, k, pri1, pri2
count1 = 0
count2 = 0
read(5,*)n
read(5,*)m
do i = 1,m
do j = n,m
if (mod(j,i) ==0) then
count1 = count1 +1
else
count1 = count1
if(count1 ==0) then
pri1 = j
do k=j,m
if (mod(k,i)==0) then
count2 = count2 +1
else
count2 = count2
if(count2 ==0) then
pri2 = k
if (pri2-pri1 == 2) then
write(*,*)j,k
end if
end if
end if
end do
end if
end if
end do
end do
end program twin
J'ai essayé n = 4 et m = 8, attendant d'obtenir 5 et 7, n = 70 et m = 74, voulant 71 et 73, mais dans les deux cas, il ne retourne rien, pourquoi est-ce?
Quelle sortie obtenez-vous? Pourquoi est-ce faux? En haut de ma tête, on dirait que vous n'initialisez pas 'count1' et' count2' à 0. – Ross
Pourquoi pensez-vous que cela ne fonctionne pas? Qu'est ce que ça fait? –
A l'exception de (3, 5) tous les nombres premiers jumeaux sont de la forme (6n-1, 6n + 1). – rossum