반응형
문제
문제 설명
- 어떤 수 S가 주어진다.
- S의 모든 소인수가 10^6보다 크다면 그 수는 적절한 암호키이다. 그렇지 않은 경우는 적절하지 않은 암호 키이다.
- 적절한 암호키는 "YES", 그렇지 않으면 "NO"를 출력한다.
풀이
S의 모든 소인수가 $10^6$보다 커야하므로 S를 $10^6$보다 같거나 작은 수로 나누었을 때 0이 나오는 수가 존재한다면, 적절한 암호키가 될 수 없다. S는 최대 10이므로 $10 * 10^6 = 10^7$회로 연산이 가능하다. 해당 문제의 시간제한인 2초($O(10^8)$)에 충분히 여유로운 시간이다.
- S를 입력받는다.
- S를 $10^6$보다 같거나 작은 수로 나눈다.
- 1 S % i == 0 이라면 해당 수는 암호키에 적합하지 않다. flag를 0으로 초기화하고 탐색을 종료한다.
- 모든 수를 탐색하고 flag = 1이라면 "YES" flag = 0이라면 "NO"를 출력한다
코드
import sys
input = sys.stdin.readline
for _ in range(int(input())):
num = int(input())
flag = 1
for i in range(2, 10**6+1):
if num % i == 0:
flag = 0
break
print("YES") if flag else print("NO")
시간복잡도
- 최악일 경우 N = 10이다. 따라서 $10 * 10^6 = 10^7$이므로 약 $O(10^7)$의 시간복잡도를 가진다.
반응형
'알고리즘' 카테고리의 다른 글
| [파이썬/python] 백준 17129 - 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유 (0) | 2024.09.07 |
|---|---|
| [파이썬/python] 백준 11578 - 팀원 모집 (0) | 2024.09.07 |
| [파이썬/python] 백준 16493 - 최대 페이지 수 (0) | 2024.09.07 |
| [파이썬/python] 백준 28215 - 대피소 (0) | 2024.09.07 |
| [파이썬/python] 백준 14646 - 욱제는 결정장애야!! (3) | 2024.09.07 |