我想在做循環這應該生成素數的if語句。爲此我用modulo
來整理數字。之後,它發現了一個素數,我希望它再向前邁進一步,並添加1,使得下一素數可以發現並添加到陣列pzahl
。我的問題是,循環似乎忽略它應該更進一步與plauf
後,發現了一個素數,以便它只是不斷下去,直到無窮大......我試圖重新循環語句的,如果內容,但它只是不工作。下面是代碼:DO循環忽略if語句
PROGRAM Primzahlen
IMPLICIT NONE
INTEGER :: start, plauf, n, a
INTEGER, ALLOCATABLE, DIMENSION(:) :: pzahlen !array into which the prime numbers should be added
INTEGER :: input
INTEGER, DIMENSION(:), ALLOCATABLE :: alle
PRINT *, "How many prime numbers should be listed"
READ (*,*) input
ALLOCATE (pzahlen(input))
pzahlen(1) = 1
start = 2
plauf = 1
loop1: DO
ALLOCATE(alle(start))
loop2: DO n = 1,start
alle(n)= MODULO(start,n)
END DO loop2
IF (minval(alle) /= 0) THEN ! This is what it seems to ignore.
plauf= plauf + 1
pzahlen(plauf) = start
PRINT *, plauf
END IF
start = start + 1
IF (plauf == eingabe) then
EXIT
END IF
PRINT *, alle
DEALLOCATE(alle)
END DO loop1
PRINT *, "prime numbers:" , pzahlen(1:input)
END PROGRAM Primzahlen
我使用gfortran編譯器和它是否可以幫助瞭解寫在Emacs。
你不應該做到底LOOP1? – Davislor
END DO loop1在結尾處。但我不完全確定是否應該更早使用它。 – traytray