Der Algorithmus kann wegen der Beziehung
ggT(a,b) * kgV(a,b) = ab
zwischen dem größten gemeinsamen Teilers (ggT) und dem kleinsten gemeinsamen Vielfachen (kgV) zweier Zahlen a und b auch zur Berechnung des kleinsten gemeinsamen Vielfachen verwendet werden.
module mysubs contains subroutine init(a, b, c) use kinds implicit none integer, intent(out) :: a, b, c integer :: dummy write (*,*) "Auffinden des groessten gemeinsamen Teilers zweier Zahlen" write (*,*) "mittels des Euklidschen Algorithmus" write (*,*) write (*,*) "Geben Sie zwei ganze Zahlen ein." read (*,*) a, b if (a < b) then dummy = a a = b b = dummy end if c = 1 return end subroutine init end module mysubs program Euklid use kinds use mysubs implicit none integer :: a, b, c call init(a, b, c) do if (c == 0) exit c = mod(a, b) a = b b = c end do write (*,*) "Der groesste gemeinsame Teiler ist ", a, "." stop end program Euklid