Skip to content

Latest commit

 

History

History
47 lines (34 loc) · 857 Bytes

4.1.11 Различные слагаемые.md

File metadata and controls

47 lines (34 loc) · 857 Bytes

По данному числу 1 ≤ n ≤ 10^9 найдите максимальное число k, для которого n можно представить как сумму k различных натуральных слагаемых. Выведите в первой строке число k, во второй — k слагаемых.

Sample Input 1:

4

Sample Output 1:

2
1 3 

Sample Input 2:

6

Sample Output 2:

3
1 2 3 

Решение

def calculation(n):
    terms = []
    a, b = 1, n - 1
    while b > a:
        terms.append(a)
        a += 1
        b = b - a
    terms.append(n-sum(terms))
    return terms


def main():
    n = int(input())
    result = calculation(n)
    print(len(result))
    print(' '.join(map(str, result)))

if __name__ == "__main__":
    main()