Напишите программу, которая вычисляет сумму всех делителей заданного натурального числа N и находит все нечетные делители этой суммы. Входные данные В первой строке входного файла Input.txt содержится одно число N (1<=N<=6*108). Выходные данные В выходной файл Output.txt вывести все нечетные делители в порядке возрастания.
Функция для вычисления суммы всех делителей числа:
def sum_of_divisors(n): total = 0 for i in range(1, n+1): if n % i == 0: total += i return total
Функция для нахождения всех нечетных делителей суммы:
def odd_divisors(n): result = [] for i in range(1, n+1): if n % i == 0 and i % 2 != 0: result.append(i) return result
Чтение входных данных из файла и запись результата в файл:
with open('Input.txt', 'r') as file: n = int(file.readline()) sum_divisors = sum_of_divisors(n) odd_divisors_list = odd_divisors(sum_divisors) with open('Output.txt', 'w') as file: for divisor in odd_divisors_list: file.write(str(divisor) + '\n')
Функция для вычисления суммы всех делителей числа:
def sum_of_divisors(n):total = 0
for i in range(1, n+1):
if n % i == 0:
total += i
return total
Функция для нахождения всех нечетных делителей суммы:
def odd_divisors(n):result = []
for i in range(1, n+1):
if n % i == 0 and i % 2 != 0:
result.append(i)
return result
Чтение входных данных из файла и запись результата в файл:
with open('Input.txt', 'r') as file:n = int(file.readline())
sum_divisors = sum_of_divisors(n)
odd_divisors_list = odd_divisors(sum_divisors)
with open('Output.txt', 'w') as file:
for divisor in odd_divisors_list:
file.write(str(divisor) + '\n')