티스토리 뷰

Coding Test

[Jungol] 2809. 약수

lluna 2021. 12. 6. 14:47
 

JUNGOL

 

www.jungol.co.kr

문제포인트

  • 제곱근 활용한 메모리초과 방지 => 정수 N의 약수는 1부터 N의 제곱근까지 구하고, 정수 N에서 약수를 나눈 수를 추가하면 된다.
  • 10 * 10 = 100 인 경우, 10이 두 번 나오는 것을 방지하기 위해 if조건문 처리
from math import sqrt

N = int(input())

ans = []
for i in range(1, int(sqrt(N))+1):
# for i in range(1, int(N ** 0.5)+1):
    if N % i == 0:
        ans.append(i)
        if N // i != i:      # 10 * 10 = 100인 경우 중복
            ans.append(N // i)
ans.sort()
for num in ans:
    print(num, end=' ')
1 2 4 5 10 20 25 50 100
댓글