Vorige Seite Kein Verweis Übersicht Kein Verweis content index Hilfeseiten  

Euklidischer Algorithmus

Die Berechnung des größten gemeinsamen Teilers zweier Zahlen a und b nach dem Euklidischen Algorithmus.

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