-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Bronze I] Title: 암호 키, Time: 1184 ms, Memory: 33240 KB -BaekjoonHub
- Loading branch information
Showing
2 changed files
with
55 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# [Bronze I] 암호 키 - 1816 | ||
|
||
[문제 링크](https://www.acmicpc.net/problem/1816) | ||
|
||
### 성능 요약 | ||
|
||
메모리: 33240 KB, 시간: 1184 ms | ||
|
||
### 분류 | ||
|
||
브루트포스 알고리즘, 수학, 정수론 | ||
|
||
### 제출 일자 | ||
|
||
2024년 6월 21일 16:38:23 | ||
|
||
### 문제 설명 | ||
|
||
<p>현대 사회에서 통용되고 있는 많은 종류의 암호 시스템에서는, 매우 큰 소수의 곱으로 만들어진 수를 암호 키로 이용하는 경우가 많다. 현실적으로 매우 큰 수를 빠른 시간 내에 소인수분해하는 것은 어려운 일이기 때문이다.</p> | ||
|
||
<p>물론 실제 생활에서는 수십만 또는 수백만 자리 이상의 매우 큰 소수가 활용되지만 그러한 소수를 구하는 것은 매우 어려운 일이므로, 우리는 좀 더 스케일이 작은 경우에 대해서만 생각해 보기로 하자. 1,000,000=10<sup>6</sup>보다 큰 소수이면 매우 큰 소수로 생각하는 것이다.</p> | ||
|
||
<p>어떤 수 S가 주어지면, 이 수가 우리가 생각하는 스케일이 작은 경우에서 적절한 암호 키인지 아닌지를 구하는 프로그램을 작성하시오. 만일 S의 모든 소인수가 10<sup>6</sup>보다 크다면 그 수는 적절한 암호 키이고, 그렇지 않은 경우는 적절하지 못한 암호 키가 된다.</p> | ||
|
||
### 입력 | ||
|
||
<p>첫째 줄에는 수의 개수 N ()이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 확인하고자 하는 수 S가 한 줄에 하나씩 주어진다.</p> | ||
|
||
### 출력 | ||
|
||
<p>N개의 줄에 걸쳐, 입력받은 수가 적절한 암호 키이면 YES, 아니면 NO를 순서대로 출력한다.</p> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
import sys, math | ||
|
||
|
||
# sys.setrecursionlimit(100000) | ||
|
||
|
||
def input(): | ||
return sys.stdin.readline() | ||
|
||
|
||
# main | ||
if __name__ == "__main__": | ||
N = int(input()) | ||
for _ in range(N): | ||
flag = 0 | ||
S = int(input()) | ||
for i in range(2, 1_000_001): | ||
if S % i == 0: | ||
flag = 1 | ||
if flag == 0: | ||
print("YES") | ||
else: | ||
print("NO") |