import time

begin = 1
end = 1000000

start_time = time.time()
y = range(begin,end)
print( sum([i for i in y if (i%3) * (i%5)==0]) )
print("eukreign: %s seconds" % ( time.time() - start_time ) )

start_time = time.time()
y = range(begin,end)
def oneeul(a):
    total = 0
    for i in a:
    	if i%3 ==0 or i%5 ==0:
    		total += i
    	else :
    		total = total
    return total
print( oneeul(y) )
print( "Blast: %s seconds" % ( time.time() - start_time ) )

start_time = time.time()
def arithmeticProgressionSum( start, finish, step ):
    return ( ( start + finish ) * ( ( finish - start ) // step + 1 ) // 2 )
     
def geAndDivides( x, divisor ):
    return ( ( ( x - 1 ) // divisor + 1 ) * divisor )
     
def leAndDivides( x, divisor ):
    return ( x // divisor * divisor )
     
def sumOfDivisors( start, finish, divisor ):
    return ( arithmeticProgressionSum( geAndDivides( start , divisor ),
									   leAndDivides( finish - 1, divisor ),
    								   divisor ) )
     
def sumOfDivisors2( start, finish, divisor1, divisor2 ):
    return ( sumOfDivisors ( start, finish, divisor1 ) +
		     sumOfDivisors ( start, finish, divisor2 ) -
    		 sumOfDivisors ( start, finish, divisor1 * divisor2 ) )
     
print ( sumOfDivisors2( begin, end, 3, 5 ) )
print("Koala: %s seconds" % ( time.time() - start_time ) )
