22 lines
444 B
Go
22 lines
444 B
Go
// 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
|