Python
Помогите с Python
Дано число n. В интервале от 1 до n сложить все числа, которые делятся на 5 без остатка.
Я Вам очень сильно и искренне сочувствую - на хоть и простой, но вполне нормальный вопрос трое не пойми кого написали Вам три совершенно глупых ответа. Первые две программы работают некорректно, а третья неэффективно и ещё отчасти некорректно. Вот так нельзя было, что ли, написать?
Это всё, что касается сложения. Если же просто надо найти сумму указанных Вами чисел, то есть итоговый результат сложения, то и в циклах нет ни малейшей нужды, так как искомая сумма арифметической прогрессии равна вот чему: S = 5•(n//5)•(n//5 + 1). Вот код для расчёта по формуле суммы арифметической прогрессии:
s = 0
for i in range(5, int(input('n: ')) + 1, 5): s += i
print(s if s else 'Нет чисел кратных пяти')
Надеюсь, кстати, что у Вас должен рассматриваться диапазон целых чисел от 1 до n включительно, то есть [1;n], а не открытый интервал (1;n). Если ввести n меньше пяти, тогда вообще нет (натуральных) чисел кратных пяти и суммы чисел тоже никакой нет (даже нулевой !), потому что самих чисел таких нет. В цикле от 1 до n включительно с единичным шагом тоже нет никакой нужды, потому что надо складывать только числа кратные пяти, а не весь диапазон перебирать с дурацким if'ом, который здесь тоже совершенно ни к чему, поскольку существует цикл с шагом пять, как раз подходящий для данного случая.Это всё, что касается сложения. Если же просто надо найти сумму указанных Вами чисел, то есть итоговый результат сложения, то и в циклах нет ни малейшей нужды, так как искомая сумма арифметической прогрессии равна вот чему: S = 5•(n//5)•(n//5 + 1). Вот код для расчёта по формуле суммы арифметической прогрессии:
n=int(input('n: ))
print((n//5)*(n//5+1)//2*5 if n>4 else 'Нет чисел кратных пяти')
Результаты обеих программ одинаковые, только последняя всё рассчитывает мгновенно, а первая будет тормозить на достаточно больших по значению n, а то не ровен час и вовсе напрочь зависнет... ))Я немножко дополнил программу от Ziu:
n = int(input())
count = 0
for i in range(n+1):
if i % 5 == 0:
count += i
print(count)
n = int(input())
count = 0
for i in range(n):
if i % 5 == 0:
count += i
print(count)
n = int(input())
counter = 0
for i in range(1, n):
if i % 5 == 0:
counter += 1
print(counter)
Похожие вопросы
- Помогите с Python
- Помогите с Python, пожалуйста
- Помогите новичку (python)
- Помогите решить (Python)
- Помогите с python написать код
- Помогите с Python, что я тут не правильно написал? Это займет максимум 2 минуты
- Помогите решить Python!!!!
- Пожалуйста, помогите с Python
- Программирование, помогите пожалуйста! Python
- Плиз помогите с Python