Jan-15-2020, 06:25 PM
Hey guys,Those days I try to restructing algorithm of a Prime module,then I met a weired problem
whem I try to use a function(speedUp_Prime) to replace
if i > Number//3:#speedUp_Prime is slower then this,they are same but why this is faster?
return True
the runingn time would increase a lot,on my laptop it was about 9 seconds,after replace with speedUp_Prime the time is about 14 seconds.almost increased 50% that is horrible,and so weired,so I wrote a new fucntion is_even,but nothing change with is_even.
my IDE is Eclipse IDE for Java Developers
Version: Neon.3 Release (4.6.3)
Build id: 20170314-1500
Python version:3.6.5
windows 10
whem I try to use a function(speedUp_Prime) to replace
if i > Number//3:#speedUp_Prime is slower then this,they are same but why this is faster?
return True
the runingn time would increase a lot,on my laptop it was about 9 seconds,after replace with speedUp_Prime the time is about 14 seconds.almost increased 50% that is horrible,and so weired,so I wrote a new fucntion is_even,but nothing change with is_even.
my IDE is Eclipse IDE for Java Developers
Version: Neon.3 Release (4.6.3)
Build id: 20170314-1500
Python version:3.6.5
windows 10
# -*- coding: UTF-8 -*- def get_Prime_Fast(MinNum,MaxNum):#get all Prime in Range(MinNum,MaxNum),print primes and counting n=1 for i in range(MinNum,MaxNum): if is_Prime(i): print(n,i) n += 1 def is_Prime(Number):#Number is a Prime or not,return boolean if Number==2 or Number ==5:# 2 and 5 are Prime return True if is_even(Number) or Number%10 ==5 :#Prime Not Even and last Number Not 5 return False i=0 for i in range(3,Number,2):#already remove even,so start at 3 step 2 if(Number%i == 0): return False # if speedUp_Prime(i,Number): # return True if i > Number//3:#speedUp_Prime is slower then this,they are same but why this is faster? return True else:#After calculate all Number return True def speedUp_Prime(i,Number):#Shall we have to divide all number? if i > Number//3: return True def is_even(Number):#Number is Even or not,return boolean if Number % 2 ==0: return True else: return False if __name__=='__main__': import time start = time.time() get_Prime_Fast(2,100000) end = time.time() print (end-start)