Помогите пожалуйста с заданием Напишите программу, которая в последовательности натуральных чисел определяет сумму чисел, кратных 6. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 6. Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести одно число — сумму чисел, кратных 6. Сделать это нужно с помощью python
Ответы
n = int(input('How many numbers line has? - '))
numbers_list = []
for i in range(n):
numbers_list.append('')
numbers_list[:] = map(int, input().split())
#print(*numbers_list)
numbers_d_6 = 0
for i in range(n):
if (numbers_list[i] % 6 == 0):
numbers_d_6 += numbers_list[i]
print('Amount of numbers, which are multiples of 6: ',numbers_d_6)
for i in range(n):
a.append(int(input()))
print(sum(filter(lambda i: i % 6 == 0, a)))
Ответ:
--- Python 3.8.3 ---
def ReadSeq(SeqLen: int, SeqType = int):
'''
Возвращает последовательность элементов в указанном типе, считанных с клавиатуры, заданной длины.
'''
try:
for _ in range(SeqLen):
yield SeqType(input())
except TypeError:
raise RuntimeError(f'Unsupported type: {CastType}')
def main():
n = int(input())
Numbers = ReadSeq(n)
print(sum(filter(lambda i: i % 6 == 0, Numbers)))
if __name__ == "__main__":
main()
Программа эффективна по памяти, т.к в любой момент её работы с памяти храниться только один элемент последовательности
Существует функция filter() и sum().
ваш код можно сократить до:
n = int(input())
for i in range(n):