Сама задача:
Для числа m найти наименьшее положительное целое число с суммой цифр m, которое делится на m
Задачу решить почти получилось, для 10 работает, а вот для больших чисел работает слишком долго, и я не уверен, работает ли вообще.
Хотелось бы узнать, можно ли как-то ускорить процесс?
def num(): file = open('input.txt', 'r') str_list = [] nums_list = [] for line in file: str_list.append(line) for nums in str_list: num = int(nums) if num >= 9: n = num // 9 str_m_num = "9" * n m_num = int(str_m_num) m_num_sum = 0 list = ['n'] def sum(m_num, n): m_num_sum = 0 for n in str(m_num): m_num_sum += int(n) return m_num_sum m = sum(m_num, n) for i in list: if m_num % int(num) == 0: m_num += num m = sum(m_num, n) if m == int(num): break else: m_num += 1 sum(m_num, n) list.append(n) a1 = m_num % int(num) a2 = m nums_list.append(m_num) file_2 = open('output.txt', 'w') for element in nums_list: file_2.write(str(element) + "\n") num()