728x90
반응형
https://www.codewars.com/kata/54d4c8b08776e4ad92000835/train/python
더보기
내 코드
# My Code
import math
# 에라토스테네스 체 응용
def isPP(n):
# 효율적으로 코딩하기 위해서는 n의 제곱근까지만 확인
for m in range(2, int(math.sqrt(n)) + 1):
# 지수함수의 역연산이 필요하므로 log 사용
# ex) log3 81 = 4
k = int(math.log(n, m))
# 정확하게 맞아 떨어지면 값 return(없을 경우 None이 return)
if m ** k == n:
return [m, k]
return None
# Warriors Code
def isPP_(n):
for i in range(2, int(n**.5) + 1):
number = n
times = 0
while number % i == 0:
number /= i
times += 1
if number == 1:
return [i, times]
return None
if __name__=='__main__':
answer = isPP(4)
print(answer)
answer = isPP(9)
print(answer)
answer = isPP(5)
print(answer)
|
반응형
'알고리즘 > 코드워' 카테고리의 다른 글
[python]Is my friend cheating? (0) | 2020.04.06 |
---|---|
[python]Human readable duration format (0) | 2020.04.03 |
[python]Beginner Series#1 School Paperwork (0) | 2020.04.01 |
[python]Is it even? (0) | 2020.03.30 |
[python]Find the first non-consecutive number (0) | 2020.03.28 |