Ниже приведен код, в котором я пытался вычислить решение указанной проблемы. Но ничего не возвращает. Что не так с моим кодом?
flag = False
i = 20
while flag==False:
c = 0
for x in range(1,21):
if i%x==0:
c = c + 1
if c==20:
print i
flag = True
i = i + 1
Возможный дубликат Вычислить НОК списка заданных чисел в Python
c
никогда не будет 20, когда вы выйдете из петли for x
. Добавьте print(c)
непосредственно перед if c==20
, чтобы увидеть, что у вас есть бесконечный цикл, который никогда не достигает 20. (Возможно, подключитесь к less
или чему-то еще, чтобы вы не переполняли свой терминал).
Кстати, вам больше не следует изучать Python 2. Python 3 - это поддерживаемая рекомендуемая версия языка. Срок службы версии 2 должен был быть прекращен в начале этого года, хотя она получила несколько дополнительных лет в терминальном обслуживании в результате неудачного компромисса.
Вот мой код на Python. Мы можем просто сделать это вот так. импортные фракции
def lcm(n):
x=1
for i in range(1, n+1):
x = (x*i)/fractions.gcd(x,i)
return x
ans = lcm(20)
print(ans)
Говоря, что он ничего не возвращает, вы имеете в виду, что он никогда не завершается (выполнение этого кода может занять много времени!) Или что? Он когда-нибудь печатает число? Как вы пробовали его отлаживать?