sol3(600851475143)
In [28]:
Out[28]:
In [31]:
tmp = range(1,100)
tmp[1] = 100
tmp[1]
tmp[0]
Out[31]:
In [27]:
def sol3(tar):
i, n = 3,tar
while True:
if 0 == n % i:
if odd_prime(i):
while 0 == n % i:
n /= i
if odd_prime(n):
return n
i += 2
In [26]:
def odd_prime(n):
i = 3
while i*i <= n :
if 0 == n % i:
return False
else :
i += 2
return True
In [20]:
3 // 2
Out[20]:
In [14]:
def sol2(lim):
a,b,sumi = 1,0,0
while a < lim:
tmp = a
a += b
b = tmp
if 0 == a % 2:
sumi += a
return sumi
In [2]:
def sol1(lim) :
return sum(xrange(3,lim,3)) + sum(xrange(5,lim,5)) - sum (xrange(15,lim,15))
In [38]:
def sieve (lim) :
primes = [True]*lim
llim = int(math.sqrt(lim))
res = 2
for i in xrange(3,llim,2):
if primes[i] :
for j in xrange(i*i,lim,i*2):
primes[j] = False
res += i
if llim % 2 == 0 :
hlim = llim + 1
else :
hlim = llim + 2
for i in xrange(hlim, lim,2):
if primes[i]:
res += i
return res
In [19]:
def sol1 (lim):
return sum(xrange(3,lim,3)) + sum(xrange(5,lim,5)) - sum(xrange(15,lim,15))
In [15]:
import time
In [5]:
sol1(1000)
Out[5]:
In [33]:
def timex (f,x):
start = time.time()
tmp = f(x)
end = time.time()
print ("elapsed time : ", end-start)
return tmp
In [8]:
timex(sol1,1000)
Out[8]:
In [9]:
isqrt(100)
In [10]:
ceiling(sqrt(10))
In [11]:
ceil(sqrt(10))
In [12]:
floor(123)
In [13]:
round (123)
Out[13]:
In [ ]: