Python/Coding Test

[Coding Test] 약수 구하기

gangee 2023. 1. 12. 15:38

목차

    728x90
    반응형
    • Python에서 약수를 구하는 방식은 여러가지가 있다. 그 중 2가지 방법을 소개한다. 그리고 더 나아가 약수의 합, 약수의 개수 구하는 코드도 함께 설명한다.

    1. 기본적인 방식

    def divisor(n):
    
        answer = []
    
        for i in range(1, n+1):
            if  (n % i == 0):
                answer.append(i)
    
        return answer
    • for문으로 범위를 1부터 최댓값인 자기자신으로 설정한다.
    • if문으로 나머지가 0인 수를 구해준다.
    • append()함수로 나머지가 0인 수를 배열에 저장해준다.

    2. 짝이 되는 수를 고려한 방식

    • n의 제곱근까지의 약수를 구하여 짝이되는 약수를 구하고 중복을 제거해주는 방식
    def divisor(n):
    
        answer = []
    
        for i in range(1, int(n**(1/2)) +1):
            if (n % i == 0):
                answer.append(i)
                if ((i**2) != n):
                    answer.append(n//i)
    
         return answer

    3. 약수의 합, 개수 구하기

    • sum() 함수를 이용해 약수의 합 구하기
    • def divisor(n): answer = [] for i in range(1, n+1): if (n % i == 0): answer.append(i) return sum(answer)
    • 약수의 개수 구하기
    • def divisor(n): answer = [] count = 0 for i in range(1, n+1): if n % i == 0: count += 1 answer.append(i) return count
    728x90
    반응형