Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Saw the Stick by Kurush
def checkio(number):
res_numbers = []
triangular_numbers = []
i = 1
while i * (i + 1) / 2 < number:
triangular_numbers.append(i * (i + 1) / 2)
i += 1
for i in range(len(triangular_numbers)):
for j in range(i + 1, len(triangular_numbers)):
candidate = triangular_numbers[i: j + 1]
if (sum(candidate) == number) and (len(candidate) > len(res_numbers)):
res_numbers = candidate
return res_numbers
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio(64) == [15, 21, 28], "1st example"
assert checkio(371) == [36, 45, 55, 66, 78, 91], "1st example"
assert checkio(225) == [105, 120], "1st example"
assert checkio(882) == [], "1st example"
June 26, 2014