[문제 간단 설명] 2보다 큰 짝수 n이 주어졌을 때, 두 개의 소수로 합을 나타낼 수 있는 프로그램을 만들어라. [문제 풀이 핵심] 1. 2보다 큰 짝수 n은 짝수이다. 2. 문제에서 방법이 여러가지가 있다고 하더라도 두 숫자의 차가 최소가 되는 방법을 사용하라고 명시하였다. 3. 숫자의 범위는 4부터 10,000까지이다. [문제 풀이 과정] 1. 에라토스테네스의 체의 원리를 이용한다. 에라토스테네스의 체란 2부터 시작해서 각각 숫자의 배수를 지워나가는 과정을 의미힌다. 이 과정을 사용하면 하나하나 숫자를 확인하는 것보다 작동 시간을 획기적으로 줄일 수 있다. [소스 코드] import sys T = int(sys.stdin.readline()) demicial_list = [False, False] ..
[문제 간단 설명] 자연수 N에 대하여 N보다 크고 2N보다 작거나 같은 수에 대하여 사이에 소수가 적어도 1개는 존재하는 것을 증명하는 프로그램을 제작한다. [문제 풀이 핵심] 1. N을 입력 받고, N과 2N의 사이의 범위를 지정해야 한다. 2. 사이에 소수를 구하는 프로그램을 제작하고, 그 수를 측정하는 방식을 사용한다. 3. 테스트 케이스의 개수는 따로 정해지지 않았으며, 0이 입력되는 순간 프로그램이 종료되어야 한다. [문제 풀이 과정] 1. 에라토스테네스의 체의 원리를 이용한다. 에라토스테네스의 체란 2부터 시작해서 각각 숫자의 배수를 지워나가는 과정을 의미힌다. 이 과정을 사용하면 하나하나 숫자를 확인하는 것보다 작동 시간을 획기적으로 줄일 수 있다. [소스 코드] import sys #파이..
[문제 간단 설명] 정수 N의 소인수분해하는 프로그램을 작성하는 것이다. [문제 풀이 핵심] 1. 소인수분해를 오름차순으로 출력해야 한다. 2. 1인 경우 아무것도 출력하지 않는다. [문제 풀이 과정] 1. 소인수분해는 1이 될 때까지 나누는 것, 즉 while 조건문을 사용해 N이 1이 될 때까지 반복한다. 2. N을 나누는 수를 2부터 차례대로 1씩 증가하게 만든다. [소스 코드] import sys N = int(sys.stdin.readline()) a = 2 while N > 1: if N % a == 0: N = N//a print(a) else: a += 1