Python
Программирование на языке Python
Напишите программу, которая в последовательности натуральных чисел определяет количество простых чисел. Программа получает на вход количество чисел (не более 100) в последовательности, а затем сами числа. Программа должна вывести два числа — количество простых чисел - первое, и их среднее арифметичкое - второе.
Если тут может быть 100 чисел, то есть смысл потратиться на заполнение решета Эратосфена до максимального числа последовательности:
from math import isqrt
def toindex(i: int): return i // 2 - 2
def eratosthenes(end):
prime = [True] * toindex(end)
for j in range(9, end, 6): prime[toindex(j)] = False
for i in range(5, isqrt(end) + 1, 2):
if not prime[toindex(i)]: continue
for j in range(i * i, end, i * 2): prime[toindex(j)] = False
return prime
N = int(input())
if N 100: raise ValueError("Неверное количество чисел")
numbers = list(map(int, map(input, ('',) * N)))
ISPRIME = eratosthenes(max(numbers) + 1)
def isprime(n): return (n & -2) == 2 or (n > 3 and n % 2 == 1 and ISPRIME[toindex(n)])
primes = list(filter(isprime, numbers))
print(len(primes), sum(primes) / len(primes), sep = '\n')
Конечно, вот готовый код:
def is_prime(n):
"""
Функция проверяет, является ли число простым.
"""
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
n = int(input("Введите количество чисел: "))
numbers = [int(input(f"Введите число {i + 1}: ")) for i in range(n)]
prime_count = 0
prime_sum = 0
for number in numbers:
if is_prime(number):
prime_count += 1
prime_sum += number
if prime_count > 0:
prime_average = prime_sum / prime_count
else:
prime_average = 0
print(f"Количество простых чисел: {prime_count}")
print(f"Среднее арифметическое простых чисел: {prime_average}")
Программа запрашивает у пользователя количество чисел в последовательности и сами числа. Затем она проходит по всем числам и считает количество простых чисел и их сумму. После этого программа выводит количество простых чисел и среднее арифметическое простых чисел. def is_prime(num):
if num < 2: return False
for i in range(2, int(num**0.5)+1):
if num % i == 0: return False
return True
n, count, sum_primes = int(input("Введите количество чисел в последовательности: ")), 0, 0
for i in range(n):
num = int(input("Введите число: "))
if is_prime(num): count, sum_primes = count+1, sum_primes+num
print("Количество простых чисел:", count)
if count > 0: print("Среднее арифметическое простых чисел:", sum_primes / count)
def is_prime(n):
"""
Функция для определения является ли число простым
"""
if n == 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
n = int(input("Введите количество чисел: "))
sequence = []
for i in range(n):
sequence.append(int(input("Введите число: ")))
count = 0
total = 0
for num in sequence:
if is_prime(num):
count += 1
total += num
if count == 0:
print("Простых чисел нет")
else:
print("Количество простых чисел:", count)
print("Среднее арифметическое простых чисел:", total / count)
"""
Функция для определения является ли число простым
"""
if n == 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
n = int(input("Введите количество чисел: "))
sequence = []
for i in range(n):
sequence.append(int(input("Введите число: ")))
count = 0
total = 0
for num in sequence:
if is_prime(num):
count += 1
total += num
if count == 0:
print("Простых чисел нет")
else:
print("Количество простых чисел:", count)
print("Среднее арифметическое простых чисел:", total / count)
Похожие вопросы
- Программирование на языке python, помогите советом. Вопрос от чайника.
- Программирование на языке Python
- Задача на тему циклов по программированию на языке Python, помогите.
- Можно ли такое написать на компьютерном языке PYTHON
- Подскажите ресурс\книги с примерами по высшей математике и их решений на языке Python
- Что такое переменные и типы данных в языке python
- Очень понравился язык Python, нужны ли на рынке труда узкие специалисты со знанием только одного языка?
- Pascal или Python? Есть ли смысл продолжать учить Pascal? Или стоит учить более прогрессивный язык Python?
- Помогите пж, я новичок в языке python.
- Задача по языку Python