snake_case all the things

This commit is contained in:
Alex Brown
2018-10-19 17:14:25 -05:00
parent 564179a0ec
commit 91fccecb56
96 changed files with 0 additions and 1373 deletions

46
maths/segmented_sieve.py Normal file
View File

@ -0,0 +1,46 @@
import math
def sieve(n):
in_prime = []
start = 2
end = int(math.sqrt(n)) # Size of every segment
temp = [True] * (end + 1)
prime = []
while(start <= end):
if temp[start] == True:
in_prime.append(start)
for i in range(start*start, end+1, start):
if temp[i] == True:
temp[i] = False
start += 1
prime += in_prime
low = end + 1
high = low + end - 1
if high > n:
high = n
while(low <= n):
temp = [True] * (high-low+1)
for each in in_prime:
t = math.floor(low / each) * each
if t < low:
t += each
for j in range(t, high+1, each):
temp[j - low] = False
for j in range(len(temp)):
if temp[j] == True:
prime.append(j+low)
low = high + 1
high = low + end - 1
if high > n:
high = n
return prime
print(sieve(10**6))