2520 - самое маленькое число, которое делится без остатка на все числа от 1 до 10.
Какое самое маленькое число делится нацело на все числа от 1 до 20?
Нужно написать решение на языке python только самое простое
Домашние задания: Информатика
Помогите с информатикой срочноооо
А вот при чём здесь вообще какой-то там Паскаль (а тем более совершенно идиотские программы на нём), если надо написать простое решение приведённой задачи на Питоне? Для этого надо всего лишь навсего составить цикл от одного до двадцати включительно для расчёта наименьшего общего кратного всех натуральных чисел от 1 до 20. Формула наименьшего общего кратного:
НОК(a,b)=a•b/НОД(a,b).
Наименьшее общее кратное считается последовательно. Функция наибольшего общего делителя есть в модуле math и называется gcd. Вот весь код, полный исходник, причём весьма простой:
from math import gcd; n = 1
for i in range(1, 21): n *= i // gcd(n, i)
print(n)
Искомое число 232792560. Вместо range(1,21) можно написать range(2,21) -будет, естественно, то же самое, только даже логичнее...
✿ ✿ ❤ ✿ ✿ ❤ ✿ ✿ ❤ ✿ ✿
НОК(a,b)=a•b/НОД(a,b).
Наименьшее общее кратное считается последовательно. Функция наибольшего общего делителя есть в модуле math и называется gcd. Вот весь код, полный исходник, причём весьма простой:
from math import gcd; n = 1
for i in range(1, 21): n *= i // gcd(n, i)
print(n)
Искомое число 232792560. Вместо range(1,21) можно написать range(2,21) -будет, естественно, то же самое, только даже логичнее...
✿ ✿ ❤ ✿ ✿ ❤ ✿ ✿ ❤ ✿ ✿
Я тоже не знаю питона, но на паскале самое простое решение будет примерно таким:


Света Лукьянова
Ну это высший пилотаж! Просили написать простенькую, понятную программу!!! А здесь одну строку понять трудно!!! :)))
Katerinka Ульянова;*
Зато всего три строки…
Если решение самое простое (но не оптимальное) и на PascalABC :)
Ответ:
931 170 240

Ответ:
931 170 240

Alexander Bazel
Переведи в Питон!
Оля Наумова
Вы совершенно не жалеете время работы компьютера. Каждое число проверять на делимость, и так сотню миллионов раз. Можно существенно сократить число проверок, пропуская числа, не кратные уже проверенным делителям
Задание слегка ошибочное. Ибо самое маленькое число близко к минус бесконечности. Ну, 0 на крайняк. Если речь идёт про натуральные числа, то тогда - да. Так что и программа может быть 2 видов - либо бесконечный цикл (ну либо просто ответ "минус бесконечность" или "такого числа не существует") в случае самого маленького числа, либо в случае самого маленького НАТУРАЛЬНОГО числа, то выдаст число (сие число: 232792560), да и то, смотря как понимать сие - ибо данное число, если от 1 до 20 всё включительно, а если 1 и 20 не считать, т.е. брать от 2 до 19, то, в принципе, число будет схожим.
Python я не особо - там, вроде, нет цикла repeat, а вместо "mod" используется "%", так что напишу на Паскале - в Python уж как-нибудь без меня или я чуть позже попробую свои силы в Python - тогда см. в комментариях к этому ответу, а пока...
...Ладно, вот код (как я понял, и 1 и 20 включены, заранее предупреждаю, программа считает долго (у меня минуты 2 считает, т.е. показывает сперва пустой экран, а через 2 минуты выдаёт результат):
Program P1;
uses crt;
var a, i: integer;
begin
clrscr;
a:=0;
i:=1;
repeat
if (i mod 1 = 0) and (i mod 2 = 0) and (i mod 3 = 0) and (i mod 4 = 0) and (i mod 5 = 0)
and (i mod 6 = 0) and (i mod 7 = 0) and (i mod 8 = 0) and (i mod 9 = 0) and (i mod 10 = 0)
and (i mod 11 = 0) and (i mod 12 = 0) and (i mod 13 = 0) and (i mod 14 = 0) and (i mod 15 = 0)
and (i mod 16 = 0) and (i mod 17 = 0) and (i mod 18 = 0) and (i mod 19 = 0) and (i mod 20 = 0) then a:=i;
i:=i+1;
until a<>0;
write ('Ответ: ', a);
readkey;
end.
Python я не особо - там, вроде, нет цикла repeat, а вместо "mod" используется "%", так что напишу на Паскале - в Python уж как-нибудь без меня или я чуть позже попробую свои силы в Python - тогда см. в комментариях к этому ответу, а пока...
...Ладно, вот код (как я понял, и 1 и 20 включены, заранее предупреждаю, программа считает долго (у меня минуты 2 считает, т.е. показывает сперва пустой экран, а через 2 минуты выдаёт результат):
Program P1;
uses crt;
var a, i: integer;
begin
clrscr;
a:=0;
i:=1;
repeat
if (i mod 1 = 0) and (i mod 2 = 0) and (i mod 3 = 0) and (i mod 4 = 0) and (i mod 5 = 0)
and (i mod 6 = 0) and (i mod 7 = 0) and (i mod 8 = 0) and (i mod 9 = 0) and (i mod 10 = 0)
and (i mod 11 = 0) and (i mod 12 = 0) and (i mod 13 = 0) and (i mod 14 = 0) and (i mod 15 = 0)
and (i mod 16 = 0) and (i mod 17 = 0) and (i mod 18 = 0) and (i mod 19 = 0) and (i mod 20 = 0) then a:=i;
i:=i+1;
until a<>0;
write ('Ответ: ', a);
readkey;
end.
Alexander Bazel
Согласен, но я почему-то искал НАИБОЛЬШЕЕ (не внимательно прочел условие задачи!!! :)))
Alexander Bazel
Учёл пропущенную проверку на mod 20. :))) Получилось:

Katerinka Ульянова;*
i mod 1=0 — Лишнее, т.к. все натуральные числа делятся на 1
i mod 2=0 — Лишнее, т.к. входит во множество i mod 4=0
i mod 3=0 — Лишнее, т.к. входит во множество i mod 6=0
и т.д.
В итоге остаются только проверки для делителей от 11 до 20,
что даст выигрыш в количестве делений и уменьшит время выполнения.
А если ещё и начинать делить с 20 в сторону уменьшения, то выигрыш по времени будет ещё больше.
Ты в каком класе?
Наталья Курчатова
в седьмом
Похожие вопросы
- Помогите с информатикой
- помогите с информатикой 11 класс
- Помогите по информатике
- Пожалуйста,помогите с Информатикой 10кл, с пояснением. Благодарю заранее.
- ПОМОГИТЕ С ИНФОРМАТИКОЙ 9 КЛАСС!
- Помогите с информатикой
- помогите с информатикой, на десять раз учебник прочитала, понять не могу, кто, какое место занял.
- Помогите сделать информатику
- Помогите с информатикой, составить программу
- Помогите с информатикой 7 класс.