IT보안관의 공부 클라우드
[구름 Level2]인싸가 되고 싶은 민수 본문
import sys, math
input = sys.stdin.readline()
def check(n):
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
return i
return n
a,b = map(int,input.split())
if a==b:
print(check(a))
else:
print(2)
* n/2 의 수까지 약수를 검사할 경우, 시간 복잡도에서 통과하지 못함.
-> math.sqrt를 통해 제곱근까지만 약수인지 검사하도록 수정.
처음에는 약수를 숫자 별로 계산하여 배열 약수 값 index에 1씩 더하여 배열의 최대 값 index를 찾아서 출력해줬는데,
큰수가 나올경우 out of memory 에러 발생.
그러던 중 숨어있는 규칙 발견.
a=b 이면, 약수 중 가장 작은 수 출력(1 제외)
a!=b 이면, 2 출력
'코딩 테스트 > 구름' 카테고리의 다른 글
[구름 Level2]방 탈출하기 (0) | 2022.06.19 |
---|---|
[구름 Level2]1등과 2등 (0) | 2022.06.19 |
[구름 Level2]두부자르기 (0) | 2022.06.16 |
[구름 Level2]거울 단어 (0) | 2022.06.16 |
[구름 Level1]뱀이 지나간 자리 (0) | 2022.06.16 |
Comments