方法1
print((int(((1 + 8000)**0.5) -1)/ 2+1), ((int(((1 + 8000)**0.5) -1)/ 2+1)*((int(((1 + 8000)**0.5) -1)/ 2+1)+1)//2))
方法2
def find_n(target_sum):
def inner(n):
return n * (n + 1) // 2 > target_sum
left, right = 1, target_sum * 2
while left <= right:
mid = (left + right) // 2
if inner(mid):
right = mid - 1
else:
left = mid + 1
return left
n = find_n(1000)
sums = n * (n + 1) // 2
print(n, sums)