Форум » Обработка целых чисел » 25 задание №236 » Ответить

25 задание №236

sasha23.88@yandex.ru: 236 - Пусть N(k) = 500 000 000 + k, где k – натуральное число. Найдите пять наименьших значений k, при которых N(k) нельзя представить в виде произведения трёх натуральных чисел. В ответе запишите найденные значения k в порядке убывания, справа от каждого значения запишите наибольший делитель N(k), не равный самому числу. Здравствуйте, решала на питоне. Как я поняла из формулировки задачи, "1" мы не должны учитывать в этом самом произведении трёх натуральных чисел. [pre2] def div(x): d = set() for i in range(2, int(x ** 0.5) + 1): if x % i == 0: d.add(i) d.add(x//i) return sorted(d) for k1 in range(1,50): d = div(500_000_000 + k1) # print(d) k = 0 for i in range(0,len(d)): for j in range(i+1,len(d)): for j1 in range(i + 1, len(d)): if (d[ i]*d[j]*d[j1]) == (500_000_000 + k1): k += 1 if k == 0: print(k, len(d), k1, d) [/pre2] Официальный ответ: 21 266099 19 166666673 17 45454547 9 1 3 1 У меня же есть еще к=12 и её максимальный делитель 250000006. Остальные цифры сходятся. Подскажите что не так?

Ответов - 1

Поляков: sasha23.88@yandex.ru пишет: У меня же есть еще к=12 и её максимальный делитель 250000006 500000012 = 2*2*125000003



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