Python
Задача на Python.
2) Найти все натуральные числа из промежутка от 1 до 200, у которых сумма делителей четное число.
Можно заметить, что чётные делители не влияют на чётность их суммы. Из этого следует, что, во-первых, достаточно проверить нечётные числа от 1 до 199, и для чисел, удовлетворяющих условию, также внести в результат их произведения на все степени двойки. Во-вторых, проверка делимости на чётные делители тоже не нужна. А в-третьих, суммы самих нечётных делителей считать не нужно, когда их количество имеет ту же чётность.
И конечно, есть более быстрые способы факторизации, чем перебор всех чисел от 1 до делимого.
И конечно, есть более быстрые способы факторизации, чем перебор всех чисел от 1 до делимого.
from itertools import takewhile
def evensf(n):
fs, p = {1}, 3
while p * p 1:
fs.update([f * n for f in fs])
return len(fs) % 2 == 0
N = 200
def scale(n):
return list(takewhile(N.__ge__, (n
Если имеется сумма всех делителей, то задача абсурдна. Только для натуральных делителей будет так:
from math import sqrt
def sum_of_divisors(n):
m, s = int(sqrt(n)), 0
for i in range(1, m + 1):
if n % i == 0: s += i + n // i
if m**2 == n: s -= m
return s
for n in range(1, 201):
s = sum_of_divisors(n)
if ~ s & 1: print("%3d%6d" % (n, s))
С подгонкой под экран достаточной ширины: from math import sqrt
def sum_of_divisors(n):
m, s = int(sqrt(n)), 0
for i in range(1, m + 1):
if n % i == 0: s += i + n // i
if m**2 == n: s -= m
return s
for n in range(1, 201):
m, s = 0, sum_of_divisors(n)
if ~s & 1:
m += 1; print("%4d (%3d)" % (n, s), end = "")
if m == 10: m = 0; print()

Oleg Ledyev
*Если имеется в виду
print(', '.join(map(str, [x for x in [x for x in range(1, 200)] if sum([i for i in range(1, x + 1) if x % i == 0]) % 2 == 0])))
Похожие вопросы
- Решение задач по python
- Нужно решить задачу на Python
- Помогите решить задачу на Python. Никак не могу решить задачу, больше дня не могу найти ответ! Никакой код не работает.
- Python# Можно помощь с задачей на Python
- Еще одна задача в Python
- Пожалуйста, помогите решить задачу на Python. Упражнения 57,58,59,60.
- Интересная задача на PYTHON?
- Задача на Python
- Пожалуйста, помогите решить задачу на Python. Упражнение 124, 125, 146
- Помогите пожалуйста с задачей на Python.