Sum multiples of 3 and 5: Difference between revisions
Content added Content deleted
(Fixed Emacs Lisp) |
|||
Line 777: | Line 777: | ||
def g(n1, n2, n3) |
def g(n1, n2, n3) |
||
g1 = n1*n2; n3 -= 1 |
g1 = n1*n2; n3 -= 1 |
||
(1..g1).select{|x| x%n1==0 || x%n2==0}.map{|x| g2=(n3-x)/g1; (x+g1*g2+x)*(g2+1)}.sum / 2 |
(1..g1).select{|x| x%n1==0 || x%n2==0}.map{|x| g2=(n3-x)//g1; (x+g1*g2+x)*(g2+1)}.sum // 2 |
||
end |
end/ |
||
puts g(3,5,999) |
puts g(3,5,999) |
||
Line 788: | Line 788: | ||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
232168 |
|||
232169 |
|||
234168 |
|||
233168 |
|||
2333333333333333333216666666666666666668 |
|||
2333333333333333333216666666666666666669 |
|||
2333333333333333333416666666666666666668 |
|||
2333333333333333333316666666666666666668 |
|||
</pre> |
</pre> |
||
Line 798: | Line 798: | ||
def sumMul(n, f) |
def sumMul(n, f) |
||
n1 = (n.to_big_i - 1) / f # number of multiples of f < n |
n1 = (n.to_big_i - 1) // f # number of multiples of f < n |
||
f * n1 * (n1 + 1) / 2 # f * (sum of number of multiples) |
f * n1 * (n1 + 1) // 2 # f * (sum of number of multiples) |
||
end |
end |
||