用连续的自然数之和来表达整数 Python3
import sys for line in sys.stdin: k=int(line) print('{}={}'.format(k,k)) cnt=1 n=2 x=2*k+n-n*n while x>0: if x%(2*n)==0: l=x//(2*n) lt=list(range(l,l+n)) print('{}={}'.format(k,'+'.join(map(str,lt)))) cnt+=1 n=n+1 x=2*k+n-n*n print('Result:{}'.format(cnt))
输入
9 51
输出
9=9 9=4+5 9=2+3+4 Result:3 51=51 51=25+26 51=16+17+18 51=6+7+8+9+10+11 Result:4