Top.Mail.Ru
Ответы

Написать код на Python, который заполняет список числами и в конце выводит их

нужно написать максимально простой код на python, который заполняет список числами, которые вводит пользователь, до тех пор, пока сумма цифр этих чисел не будет меньше 100
если количество чисел в списке четное – вывести сумму четных чисел из списка, иначе – вывести произведение нечетных
в конце программа должна вывести все простые числа из списка

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
1234567891011121314
 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 = ', ') 
Аватар пользователя
Искусственный Интеллект
1234567891011121314151617181920212223242526272829303132333435363738
 ''' 
заполняет список числами с ввода до тех пор, 
пока сумма цифр элементов меньше 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()

Аватар пользователя
Просветленный
1234567891011121314151617181920212223242526272829303132333435
 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()