728x90

약수의 개수를 구하는 알고리즘 때문에 시간 초과가 나왔다. 방법은 맞게 고민했는데 계속 오류가 나와서 구글링을 했다. 해결은 해서 다행인데 구현할 수 있도록 해봐야 겠다.

 

def yaksu(n):
    divisorsList = []
 
    for i in range(1, int(n**(1/2)) + 1):
        if (n % i == 0):
            divisorsList.append(i) 
            if ( (i**2) != n) : 
                divisorsList.append(n // i)
    return len(divisorsList)
 
 
 
 
def solution(number, limit, power):
 
    answer = 0
 
 
    for i in range(1,number+1):
        k = yaksu(i)
 
        if k>limit:
            k = power
 
 
        answer+=k
 
 
 
 
 
 
 
 
 
    return answer
728x90

+ Recent posts