Я делаю ( Типичное) назначение нахождения простых числа. Я думал, что я умным и, для больших чисел, пропустите процесс разделения с этим трюком:
def div5(candidate):
return str(candidate)[-1] == "5"
Добавление 5 к себе несколько тысяч раз кажется отходом (мне нужен только последний член ), но я хотел быть уверен.
Кредит в ЮНУТБУ на Время измерения, прошедшего в Python?
%>python -mtimeit -s"import intDiv" "intDiv.div5(2147483645)"
1000000 loops, best of 3: 0.272 usec per loop
%>python -mtimeit -s"import strDiv" "strDiv.str5(2147483645)"
1000000 loops, best of 3: 0.582 usec per loop
Для разъяснения, вот два метода, которые я определил.
def div5(maxi): return not (maxi%5)
def str5(maxi): return str(maxi)[-1] == '5'
Это слишком медленно. Как я могу Проанализируйте последний член STR (MAXI), без преобразования всего числа (без необходимости)?
благодаря @ Claudiu для помощи с уборкой глаз.
-