Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 6, 2014 20:47:47

Nameless95
Зарегистрирован: 2014-11-28
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

наибольший общий делитель

Помогите, пожалуйста, с написанием программы:
“Напишите программу, которая будет искать наибольший общий делитель (НОД, greatest common divisor, GCD) двух чисел. При запуске программа не должна ничего писать на экран, а просто ждет ввода двух натуральных чисел через пробел. После ввода чисел программа считает их НОД и выводит на экран сообщение ”GCD is <посчитанное значение>“, например, для чисел 15 и 25 это будет ”GCD is 5“. После этого программа опять входит в режим ожидания двух натуральных чисел. Если в какой-то момент работы пользователь ввел вместо этого пустую строку, то нужно написать на экран ”bye“ и закончить свою работу.
Вам нужно написать функцию gcd, которая принимает на вход два аргумента (назовем их M и N). Если аргументы равны, то мы нашли НОД – он равен M (или N), нужно выводить соответствующее сообщение на экран (см. выше). Иначе нужно сравнить аргументы между собой. Если M больше N, то запускаем ту же функцию gcd, но в качестве первого аргумента передаем (M-N), а в качестве второго N. Если же наоборот, M меньше N, то запускаем функцию gcd с первым аргументом M, а вторым (N-M).”
Заранее спасибо за помощь!

Офлайн

#2 Дек. 6, 2014 21:13:41

alchemist
Зарегистрирован: 2014-11-12
Сообщения: 43
Репутация: +  0  -
Профиль   Отправить e-mail  

наибольший общий делитель


100 $ на номер карти 1234 3122 **** ****

Заранее спасибо за деньги!

Офлайн

#3 Дек. 6, 2014 22:13:41

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

наибольший общий делитель

def gcd(m, n):
    while n: m, n = n, m%n
    return m
while True:
    s = input("").split(" ")
    if len(s) == 1 and s[0] == '':
        print("bye")
        break
    elif len(s) == 2:
        try:
            s = list(map(int, s))
            print(gcd(min(s[0], s[1]), abs(s[0]-s[1])))
            continue
        except ValueError:
            pass
    print("Error input :(")



————————————————
-*- Simple is better than complex -*-

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version