PROGRAM ch1509
IMPLICIT NONE
INTEGER :: I,J,Result
INTEGER :: GCD
  PRINT *,' Type in two integers'
  READ *,I,J
  Result=GCD(I,J)
  PRINT *,' GCD is ',Result
END PROGRAM ch1509

RECURSIVE INTEGER FUNCTION GCD(I,J) RESULT(Answer)
IMPLICIT NONE
INTEGER , INTENT(IN) :: I,J
  IF (J==0) THEN
    Answer=I
  ELSE
    Answer=GCD(J,MOD(I,J))
  ENDIF
END FUNCTION GCD


