제곱근 구하기

제곱근 구하기

제곱근을 손으로 구하는 계산 과정을 그대로 이용하여 정해놓은 N 자리까지 소수점을 구하는 코드

def getRoot(n):
    left = 0
    numbers = []
    divisor = 0
    loop = True
    count = 100 # 소수점아래까지 구하는 한계점

    while loop:
        divisor = 0
        for i in range(1, 11): # 1~10에 대해서
            if (left * 10 + i) * i > n:
                numbers.append(divisor)
                n = (n - (left * 10 + divisor) * divisor) * 100
                if n == 0:
                    loop = False
                    break
                left = (left * 10 + divisor) + divisor
                break
            divisor = i
        if len(numbers) == count:
            loop = False
    if len(numbers) == 1:
        return []
    return numbers

이 코드에서 count를 조정하면 원하는 자리수까지 뽑아낼 수 있다.


def printRoot(n): r = getRoot(n) return "{}.{}".format(r[0], "".join((str(x) for x in r[1:]))) printRoot(2)