Форум » Массивы, сортировка, работа с файлами » №4117 не сходится с ответом » Ответить

№4117 не сходится с ответом

2GAPUH: (№ 4117) (А. Кабанов) Обозначим через M разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение M равным нулю. Напишите программу, которая перебирает целые числа, большие 350000, в порядке возрастания и ищет среди них такие, для которых значение M при делении на 23 даёт в остатке 9. Запишите первые 6 найденных чисел в порядке возрастания, справа от каждого числа запишите соответствующее значение M. Мой ответ: 350007, 2378 350015, 69998 350017, 8496 350070, 1665 350119, 4540 350136 1619 Правильный: 350015 69998 350017 8496 350036 175016 350073 116688 350082 175039 350128 175062 [pre2] otvet = [] n = 180000 a = [] for i in range(n + 1): a.append(i) a[1] = 0 i = 2 while i <= n: if a[ i] != 0: j = i + i while j <= n: a[ j] = 0 j = j + i i += 1 a = set(a) a.remove(0) a = sorted(a) print(a) for x in range(350000, 360000): z = [] for s in a: if x % s == 0: z.append(s) if len(z) > 1: M = z[-1] - z[0] if M % 23 == 9: otvet.append(x) otvet.append(M) if len(otvet) > 11: break print(otvet) [/pre2] Вроде как уже всю программу пересмотрел, не могу понять, то ли у меня ошибка, то ли в ответах. Заранее благодарю

Ответов - 2

cabanov.alexey: Вы находите только простые делители. Пропускаете все остальные.

2GAPUH: Я понял... Простые а не не натуральные делители,спасибо и извините за беспокойство.



полная версия страницы