// Package q829 implements a solution for https://leetcode.com/problems/consecutive-numbers-sum/ package q829 import "math" func consecutiveNumbersSum(n int) int { maxN := int(math.Sqrt(float64(n) * 2)) for maxN*(maxN+1)/2 <= n { maxN++ } cnt := 1 for nNums := maxN - 1; nNums > 1; nNums-- { start := (n*2/nNums + 1 - nNums) / 2 if (start+start+nNums-1)*nNums/2 == n { cnt++ } } return cnt } var _ = consecutiveNumbersSum