Как запросить ввод чисел?
Мне необходимо решить задачу о нахождении НОД для n чисел. Решал я таким образом, вот код:
def find_gcd(x, y):
while(y):
x, y = y, x % y
return x
l = [2, 4, 6, 8]
num1=l[0]
num2=l[1]
gcd=find_gcd(num1,num2)
for i in range(2,len(l)):
gcd=find_gcd(gcd,l[i])
print(gcd)
В данной программе вычисляется НОД чисел, введенные в списке l. Выводит 2 все правильно. Теперь мне необходимо сделать так, чтобы числа вводились в самое программе, а не в коде. То есть чтобы появлялось поле "Введите числа ", я ввожу и мне выдается результат. Пробовал сделать через
print('введите числа')
l = [int(elem) for elem in input().split()]
print(l)
Но почему-то выдается ошибка. Не подскажите в чем дело и как ее исправить? Заранее спасибо!
Ответы (3 шт):
Автор решения: Spartak
→ Ссылка
Воспользуйтесь методом input:
from math import gcd
from functools import reduce
inputnumbers = input("Введите числа через запятую без пробелов: ")
numbarr = inputnumbers.split(",") #разобьем по запятой, получим массив
count = 0
while count < len(numbarr): # приобразуем все строки в массиве в числа
numbarr[count] = int(numbarr[count])
count += 1
print(reduce(gcd, numbarr))
Автор решения: user397361
→ Ссылка
Числа в строке:
from math import gcd
from functools import reduce
print(reduce(gcd, map(int, input().split())))
Числа в столбик до первой пустой:
from math import gcd
from functools import reduce
print(reduce(gcd, map(int, iter(input, ''))))