! Fibonacci numbers
PROGRAM fibonacci

  IMPLICIT NONE
  INTEGER :: n, i
  INTEGER :: f0, f1, f2

  DO 
     PRINT *, "Posous arithmoys Fibonacci? (ews 31)"
     READ *, n
     IF ( (n >= 0) .AND. (n < 31) ) EXIT
     PRINT *, "Edwses lathos"
  END DO

  f0 = 0
  f1 = 1

  PRINT *, f0
  IF (n > 0) PRINT *, f1   
 ! an n=0 na mhn typwsei, den theloume to f1 (kai ta f2, f3, ...)

  DO i = 2, n-1   
     f2 = f0 + f1
     PRINT *, f2

     f0 = f1
     f1 = f2
  END DO

END PROGRAM fibonacci
