#!/usr/bin/env python3 # Challenge 133 # # TASK #1 > Integer Square Root # Submitted by: Mohammad S Anwar # You are given a positive integer $N. # # Write a script to calculate the integer square root of the given number. # # Please avoid using built-in function. Find out more about it here. # # Examples # Input: $N = 10 # Output: 3 # # Input: $N = 27 # Output: 5 # # Input: $N = 85 # Output: 9 # # Input: $N = 101 # Output: 10 # solution: https://en.wikipedia.org/wiki/Integer_square_root import sys def isqrt(n): x0 = n >> 1 # initial estimate if x0 == 0: return n # loop x1 = int(x0 + n/x0) >> 1 while x1 < x0: x0 = x1; x1 = int(x0 + n/x0) >> 1 return x0 n = int(sys.argv[1]) print(isqrt(n))