Python

Как написать цикл на языке программирования Python

Нужно написать цикл для подсчёта -
Если выписать все натуральные числа меньше 10, кратные 3 или 5, то получим 3, 5, 6 и 9. Сумма этих чисел равна 23.

Найдите сумму всех чисел меньше 1000, кратных 3 или 5.
И объяснить как это работает
Иван Седов
Иван Седов
101
Арифметическая прогрессия)

3 + 6 + 9 + 12 + .+999 = 3 * (1 + 2 + 3 + .333) = 3 * 333 * 334 / 2
5 + 10 + 15 + .+995 = 5 * (1 + 2 + 3 + .199) = 5 * 199 * 200 / 2

Но в сумму 5* входят и кратные 3... их надо вычесть.

15 + 30 + 45 + .+990 → 15 * ( 1 + .+66 ) → 15 * 67 * 66 / 2
__________

Решение:

print( 999 * 167 + 199 * 500 - 15 * 67 * 33 )

>>> 233168
АТ
Андрей Терновой
62 360
Лучший ответ
Роман Массёров
Роман Массёров
68 135
В цикле от 3 до 1000 проходим по всем числам
% - остаток от деления
Если остаток от деления числа на 3 или 5 равен 0, то число кратно 3 или 5 соответственно. Выводим его на экран и суммируем.
После цикла выводим сумму
Иван Седов я написал также сразу, но меня смущает то что ответ большеват
Иван Седов двумя способами
стандартный вариант:
sum_numbers = 0
for number in range(3, 1000):
        if not number % 3 or not number % 5: sum_numbers += number
print(sum_numbers)

более питонячий вариант:
print(sum([n for n in range(3, 1000) if not n % 3 or not n % 5]))
Советую на будущее прочитать этот цикл статей, который посвящён новичкам для изучения Python. Если бы ты уделил 30 минут на чтение статей, то мог бы не задавать этот вопрос, а решить задачу самому за несколько минут.
Код с комментариями : paste
Иван Седов я решил сразу как в ответах, но мне показалось что довольно большой ответ получился, то есть я сделал что-то неправильно
хоспади
где вы эти задания летом берете?

а главное - зачем?
Яков Теплых
Яков Теплых
2 364
Иван Седов есть места, а ответ у вас есть?