ПОМОГИТЕ НАПИСАТЬ НА ПИТОНЕ ПОЖАЛУЙСТА!!
Пусть M – сумма простых натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, большие 500 000, в порядке возрастания и ищет среди них такие, для которых значение 10000 < M < 50000 . Выведите первые пять найденных чисел
и соответствующие им значения M.
Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем – значение M (через один пробел). Строки выводятся в порядке возрастания найденных чисел.
Ответы
Ответ дал:
0
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
def sum_prime_factors(n):
sum = 0
for i in range(2, n):
if n % i == 0 and is_prime(i):
sum += i
return sum
def find_numbers():
count = 0
num = 500000
while count < 5:
num += 1
M = sum_prime_factors(num)
if 10000 < M < 50000:
print(num, M)
count += 1
find_numbers()
Вас заинтересует
1 год назад
1 год назад
1 год назад
8 лет назад