[Codility/Lesson10]CountFactors

zzarbttoo·2021년 9월 23일
0

코딜리티

목록 보기
22/29

| 1트

def solution(N):

    answer = 0

    for i in range(1, N+1):
        if N % i == 0:
            answer += 1

    return answer  
  • 처음부터 끝까지 비교하며 약수를 구하는 단순한 방법
  • O(N)

  • 큰 값에서 Timeout이 발생했다

결과는 여기에


| 2트


import math
def solution(N):

    squre_root = math.floor(N ** (1/2))
    answer = 0

    for i in range(1, squre_root + 1):
        if i * i == N:
            answer += 1 
            return answer 

        if N % i == 0:
            answer += 2 
    return answer 
  • root(N)을 기준으로 약수가 대칭으로 있다
ex) N = 81

1 x 81, 3 x 27, 9 x 9 이런식으로 곱해지기 때문에 대칭으로 있다 

결과는 여기에

profile
나는야 누워있는 개발머신

0개의 댓글