mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-12 20:50:05 +00:00
15 lines
244 B
Go
15 lines
244 B
Go
|
package shared
|
||
|
|
||
|
// IntegerSquareRoot defines a function that returns the
|
||
|
// largest possible integer root of a number.
|
||
|
func IntegerSquareRoot(n uint64) uint64 {
|
||
|
x := n
|
||
|
y := (x + 1) / 2
|
||
|
|
||
|
for y < x {
|
||
|
x = y
|
||
|
y = (x + n/x) / 2
|
||
|
}
|
||
|
return x
|
||
|
}
|