我已经制作了一些计算素数的代码(我知道没什么特别的),正如预期的那样,数字越大越慢,我知道无论数字是多少都不可能让它变速,但我相信我能做到提高它的速度,我只是不知道如何...
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
<DefaultCounters/>
<Counters>
<Add PerformanceCounter="YOUR COUNTER"/>
</Counters>
</Add>
答案 0 :(得分:4)
有几件事:
1
,3
,5
以及所有奇数号码; %
检查模数; 所以改进的版本将是:
import time
from math import sqrt # import square root
start = time.time()
for number in range(1000000001,10000000000000,2): # use for, hops of 2
for i in range(3, int(sqrt(number))+1,2): # check 3, 5,... up to sqrt(n)
if number % i == 0: # use modulo checks instead of floating point
break
else: # use a for-else structure for faster ending
print(str(number) + ' prime')
count = 0
end = time.time()
print(end - start)
尽管如此,Python并不是为了充分利用CPU而设计的。如果你真的想编写一个超优化算法,你将不得不选择一种更快(更不方便)的编程语言。