Программа для поиска наименьшего числа, которое делится на все числа от 1 до 20

Ниже приведен код, в котором я пытался вычислить решение указанной проблемы. Но ничего не возвращает. Что не так с моим кодом?

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 

Говоря, что он ничего не возвращает, вы имеете в виду, что он никогда не завершается (выполнение этого кода может занять много времени!) Или что? Он когда-нибудь печатает число? Как вы пробовали его отлаживать?

Ken Y-N 26.10.2018 09:24

Возможный дубликат Вычислить НОК списка заданных чисел в Python

Ken Y-N 26.10.2018 09:30
c никогда не будет 20, когда вы выйдете из петли for x. Добавьте print(c) непосредственно перед if c==20, чтобы увидеть, что у вас есть бесконечный цикл, который никогда не достигает 20. (Возможно, подключитесь к less или чему-то еще, чтобы вы не переполняли свой терминал).
tripleee 26.10.2018 09:55

Кстати, вам больше не следует изучать Python 2. Python 3 - это поддерживаемая рекомендуемая версия языка. Срок службы версии 2 должен был быть прекращен в начале этого года, хотя она получила несколько дополнительных лет в терминальном обслуживании в результате неудачного компромисса.

tripleee 26.10.2018 09:56
1
4
307
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот мой код на 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)

Другие вопросы по теме