|
|
|
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
|
|
|
|