def is_perfect_square(n):  
    x = n // 2  
    y = set([x])  
    while x * x != n:  
        x = (x + (n // x)) // 2  
        if x in y: return False  
        y.add(x)  
    return True  
  
print(is_perfect_square(8))  
print(is_perfect_square(9))  
print(is_perfect_square(100)) 