Написать код на Python, который заполняет список числами и в конце выводит их
нужно написать максимально простой код на python, который заполняет список числами, которые вводит пользователь, до тех пор, пока сумма цифр этих чисел не будет меньше 100
если количество чисел в списке четное – вывести сумму четных чисел из списка, иначе – вывести произведение нечетных
в конце программа должна вывести все простые числа из списка
from math import prod
a, p_num = [], []
n_sum = 0
while n_sum < 100:
a.append(int(input()))
n_sum += sum(map(int, str(a[-1])))
if all([a[-1] % i != 0 for i in range(2, int(a[-1] ** 0.5) + 1)]):
p_num.append(a[-1])
if len(a) % 2:
print(prod([i for i in a if i % 2]))
else:
print(sum([i for i in a if i % 2 == 0]))
print(*p_num, sep = ', ')
'''
заполняет список числами с ввода до тех пор,
пока сумма цифр элементов меньше 100
при чётном количестве чисел в списке – вывести сумму четных чисел из списка,
иначе – вывести произведение нечетных
в конце выдать все простые числа из списка
'''
from math import prod
#-------------------------------------------------------
def isSimple(x):
if x in [2,3,5,7]: return True
if x%6 in (0,2,3,4): return False
tst=3
qtst=tst*tst
while qtst<x: # сравниваем с квадратом
if x%tst == 0: return False
tst +=2
qtst +=(tst+1)<<2 # (tst+2)^2=tst^2+4*(tst+1)
return True
#--------------------------------------------------------
a = []
n_sum = 0
while n_sum < 100:
s=input('=')
a.append(int(s))
n_sum += sum(int(i) for i in s)
if len(a)&1:
print(' произв нечётн=',prod( filter( lambda x: (x&1), a ) ) )
else:
print(' сумма чётных=', sum( filter(lambda x: not (x&1), a) ) )
sd=list(filter(isSimple,a))
if len(sd)==0:
print('простых чисел нет')
else: print(' простые',*sd)
def get_numbers(sum_limit=100):
numbers = []
total_even = 0
product_of_odd = 1
# Заполнение списка числами
while True:
try:
number = int(input("Введите целое число (q для завершения): "))
if number == 'q':
break
numbers.append(number)
if sum(numbers) >= sum_limit:
break
except ValueError:
print("Ошибка ввода! Пожалуйста, введите целое число.")
# Вычисление суммы четных чисел и произведения нечетных
for num in numbers:
if num % 2 == 0:
total_even += num
else:
product_of_odd *= num
# Вывод результатов
if len(numbers) % 2 == 0:
print("Сумма четных чисел:", total_even)
else:
print("Произведение нечетных чисел:", product_of_odd)
# Вывод простых чисел из списка
primes = [num for num in numbers if num > 1 and all(num % i != 0 for i in range(2, int(num ** 0.5) + 1))]
print("Простые числа из списка:", primes)
# Запуск функции с параметрами по умолчанию
get_numbers()
def get_numbers(sum_limit=100):
numbers = []
total_even = sum_of_odd = 0
while True:
try:
number = int(input("Enter an integer (q to quit): "))
if number == q or number < 0:
break
numbers.append(number)
sum_so_far = sum(numbers)
if sum_so_far >= sum_limit:
break
except ValueError as e:
print("Invalid input:", str(e), ". Please enter an integer.")
# Calculate even and odd totals
for num in numbers:
if num % 2 == 0:
total_even += num
else:
sum_of_odd *= num
# Print results
print("\nEven numbers' sum:", total_even)
print("Odd numbers' product:", sum_of_odd)
# Find prime numbers
primes = [num for num in numbers if all([num % i != 0 for i in range(2, int(num ** 0.5 + 1)])]]
print("\nPrime numbers:", *primes, sep="\n")
# Run the function with default parameters
get_numbers()