Ruby :: Aufgabe #60

2 Lösungen Lösungen öffentlich

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:

vote_ok
von cutoff (120 Punkte) - 27.11.2014 um 12:58 Uhr
Quellcode ausblenden Ruby-Code
#!/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
vote_ok
von FunnyGamer (470 Punkte) - 17.08.2016 um 11:25 Uhr
Quellcode ausblenden Ruby-Code
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