mirror of
https://github.com/AdaCore/why3.git
synced 2026-02-12 12:34:55 -08:00
17 lines
367 B
Python
17 lines
367 B
Python
|
|
# same as sqrt.py, but with a function
|
|
|
|
def isqrt(n):
|
|
#@ requires n >= 0
|
|
#@ ensures result * result <= n < (result + 1) * (result + 1)
|
|
r = 0
|
|
s = 1
|
|
while s <= n:
|
|
#@ invariant 0 <= r
|
|
#@ invariant r * r <= n
|
|
#@ invariant s == (r+1) * (r+1)
|
|
#@ variant n - s
|
|
r = r + 1
|
|
s = s + 2 * r + 1
|
|
return r
|