Форум » Обработка целых чисел » Задача 3751 » Ответить

Задача 3751

shervlad: Здравствуйте! Помогите с задачей. Можно ли как-то оптимизировать код? Он выполняется чересчур долго..:( [pre2] for n in range(100000000,101000000): if n%2 == 0: k = 1 else: k = 0 i = 2 d = [1,n] while i*i <= n: if n%i==0: d.append(i) if i%2==0: k += 1 if k > 3: break if i != n//i: d.append(n//i) if (n//i)%2 == 0: k+=1 if k > 3: break i+=1 d = sorted(d) if k == 3: print(n,d[2]) [/pre2]

Ответов - 1

Поляков: Вам не обойтись без основной теоремы арифметики. Попробуйте посмотреть здесь. Это задача 25.146 из основного сборника, авторское решение можно посмотреть на сайте.



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