Ocena użytkownikóww: ***** / 0
Nadesłany przez Nikodem Solarz, 19 października 2013 21:11
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.nww.rb:
#======================================================
#**Implementacja algorytmu Euklidesa
#**wraz z najmniejszą wspólną wielokrotnością
#**Narzew
#**19.10.2013
#**dla portalu algorytm.org
#======================================================
#======================================================
#**oblicz_nwd(a,b,p)
#**Największy wspólny dzielnik
#**a => liczba A
#**b => liczba B
#**c => czy wyświetlać obliczenia ? 0 - nie, 1 - tak
#======================================================
def oblicz_nwd(a,b,p=0)
if a == b
print "Wynik: #{a}\n" if p == 1
end
count = 0
while (a != b)
count += 1
if a < b
b = b-a
print "\##{count}\nA < B\nA: #{a}\nB: #{b}\n" if p == 1
else
a = a - b
print "\##{count}\nA > B\nA: #{a}\nB: #{b}\n" if p == 1
end
end
print "NWD: #{a}\n" if p == 1
return a
end
#======================================================
#**oblicz_nww(a,b,p)
#**Najmniejsza wspólna wielokrotność
#**a => liczba A
#**b => liczba B
#**c => czy wyświetlać obliczenia ? 0 - nie, 1 - tak
#======================================================
def oblicz_nww(a,b,p=0)
x = (a*b)/oblicz_nwd(a,b,p)
print "NWW: #{x}\n" if p == 1
return x
end