알쓸코지
article thumbnail

🔗 문제

https://school.programmers.co.kr/learn/courses/30/lessons/120836

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

💻 Code

def solution(n):
    cnt = 0

    for i in range(1, int(n ** 0.5) + 1):
        if n % i == 0:
            cnt += 2

            if i * i == n:
                cnt -= 1

    return cnt

1부터 n의 제곱근까지 for 루프를 돌려서 순서쌍의 개수를 찾는다.

  1. if n % i == 0: in의 약수일 경우,
  2. cnt += 2: (i, n // i), (n // i, i)의 두 가지 경우가 나오므로 cnt += 2를 해준다.
  3. 이때 i * i == n, 즉 in의 제곱근일 경우, 한 번만 카운트해야 하므로 cnt -= 1를 해준다.

profile

알쓸코지

@chocoji

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!