Найти - Пользователи
Полная версия: наибольший общий делитель
Начало » Центр помощи » наибольший общий делитель
1
Nameless95
Помогите, пожалуйста, с написанием программы:
“Напишите программу, которая будет искать наибольший общий делитель (НОД, 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).”
Заранее спасибо за помощь!
alchemist

100 $ на номер карти 1234 3122 **** ****
Заранее спасибо за деньги!
terabayt
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 :(")
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB