Как сократить время выполненияPython

Программы на Python
Ответить
Гость
 Как сократить время выполнения

Сообщение Гость »


Я решаю один из ката CodeWars и получил ошибку времени выполнения Время выполнения истекло (12000 мс), проблема, вероятно, связана с простыми числами.

мой окончательный код выглядит так:

из математического импорта sqrt защита sum_for_list(lst): abs_max = max((abs(i) для i в lst)) primes = [i for i in range(2, abs_max + 1) if all(i % j != 0 for j in range(2, int(sqrt(i)) + 1))] пары = [[j, i] для i в списке для j в простых числах, если i % j == 0] рез = {} для меня в парах: res[i[0]] = i[1], если i[0] не в res, иначе res[i[0]] + i[1] return sorted([[k, v] для k, v в res.items()]) Мне потребовался целый день на поиски того, как сократить код выполнения, но проблема все еще остается, и я схожу с ума. Пожалуйста, хотя бы подскажите, что мне следует использовать.

Итак, есть массив pos или neg ints lst, и мне нужно найти пары [a,b], a — простое число, а b — сумма целых чисел из заданного lst, для которого a является простым множителем (деленным на a без остатка), например, если lst [12, 15], он должен вернуть result = [[2, 12], [3, 27], [5, 15]]< /код> URL-адрес ката: https://www.codewars.com/kata/54d496788 ... 52f/python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»