Ruby :: Aufgabe #60
2 Lösungen

Größter gemeinsamer Teiler
Anfänger - Ruby
von hobeditz
- 21.09.2014 um 11:51 Uhr
Entwickeln Sie ein Programm, welches den größten gemeinsamen Teiler zweier Zahlen ermittelt. Die Zahlen sollen vom Nutzer selber bestimmt werden.
Zitat:
Tipp:
Der euklidische Algorithmus könnte helfen.
Lösungen:

#!/usr/bin/env ruby class Ggt def initialize @a = ARGV[0].to_i @b = ARGV[1].to_i end def calc candids = @a, @b l, h = candids.sort pointer = l - 1 @@suc = 'n' while pointer > 2 if h % pointer == 0 and l % pointer == 0 puts "Grösster gemeinsamer Teiler von #{l} und #{h} ist: #{pointer}" @@suc = 'y' break end pointer -= 1 end puts "Die Zahlen #{l} und #{h} haben keinen gemeinsamen Teiler :-(" if @@suc == 'n' end end res = Ggt::new res.calc
$ ruby RubyScripts/ggt.rb 1071 1029
Grösster gemeinsamer Teiler von 1029 und 1071 ist: 21

def run puts "Zahl 1: " zahl1=gets.to_i puts "Zahl 2: " zahl2=gets.to_i teiler=zahl1 while teiler>0 do if zahl1%teiler==0 && zahl2%teiler==0 puts "Der groesste gemeinsame Teiler ist: #{teiler}" break else teiler-=1 end end run end