Sum and Division example (Python)
37,091
Solution 1
def sumdiv7(limit):
for i in range(limit):
result = sum(range(i*7)) / 7
print "For", i, ", sumdiv = ", result
Example:
>>> sumdiv7(4)
For 0 , sumdiv = 0
For 1 , sumdiv = 3
For 2 , sumdiv = 13
For 3 , sumdiv = 30
The trick is very simple, you want to sum multiples of 7,
To get the ith multiple of 7, it's just i*7
range
is a python function to get a list of numbers from 0 to x
sum
sums a list.
Just put these pieces together
Solution 2
The direct answer:
def sum_to_number_divided_by_seven(i):
return sum(range(i+1)) / 7
The more efficient answer:
def sum_to_number_divided_by_seven(i):
return (i*(i+1))/14
Comments
-
eozzy over 3 years
>>> sum((1, 2, 3, 4, 5, 6, 7)) 28 >>> 28/7 4.0 >>> sum((1,2,3,4,5,6,7,8,9,10,11,12,13,14)) 105 >>> 105/7 15.0 >>>
How do I automate this sum and division using a loop maybe?
Edit: Maybe I wasn't clear - I want a loop to keep doing the sum (of multiples of 7, eg 1-7, 1-14, 1-21 etc..) until it reaches x (x is the user input)
Okay, figured it out:
def sum_and_div_of_multiples_of_7(x): y = 7 while (y <= x): mof7 = range(1,y) print ('mof7 is', mof7) total = sum(mof7) print ('total =', total) div = total/7 print ('div =', int(div), '\n') y = y+7 # increase y x = 70 sum_and_div_of_multiples_of_7(x)