본문 바로가기
Algorithm/완전탐색

[백준] 1816번 암호 키

by HANNI하니 2023. 9. 10.

사용 언어 - Python3

문제 -  암호 키

 

1816번: 암호 키

현대 사회에서 통용되고 있는 많은 종류의 암호 시스템에서는, 매우 큰 소수의 곱으로 만들어진 수를 암호 키로 이용하는 경우가 많다. 현실적으로 매우 큰 수를 빠른 시간 내에 소인수분해하는

www.acmicpc.net

 

 

정답

모든 소인수가 1000,000보다 작은지 확인

1. 소인수 = 1을 제외한 약수

2. 2부터 1000000까지 수로 나누고 나누어떨어진다면, 100만 이하의 약수가 존재한다는 의미

NO를 출력하고 break

=> 모든 경우의 수를 생각하는 완전탐색 방법

 

3. 100만까지 갔다면, 100만 이하의 약수가 존재하지 않는다는 뜻이므로

YES를 출력

N = int(input())
for _ in range(N):
    S = int(input())
    for i in range(2,1000001):
        if S%i == 0:
            print("NO")
            break
        if i == 1000000:
            print("YES")

 

 

 

레퍼런스

  • 정답 깃허브

https://github.com/yyeongeun/codingtest/blob/main/BAEKJOON/1816_%EC%95%94%ED%98%B8%ED%82%A4.py

 

댓글