[문제 간단 설명] 자연수 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
[문제 간단 설명] M과 N 사이의 수 중에서 소수만을 골라 합을 구하고, 최솟값을 구하는 문제이다. [문제 풀이 핵심] 1. 두 숫자의 사이의 범위를 지정해야 한다. 2. 소수를 구해야 한다. 3. 소수 모임의 합을 구하고, 최솟값을 호출해야 한다. [문제 풀이 과정] 1. for 문을 사용해 두 숫자 사이의 범위를 반복하게 제작. 2. 소수의 조건인 1과 자기 자신을 제외하고 약수는 없다는 점을 이용. 3. 구한 값을 리스트로 따로 모아 파이썬 내장 함수인 sum을 이용해 합을 구함. 4. 최솟값은 처음으로 입력된 리스트 값이므로 단순하게 0번을 호출함. [소스 코드] import sys M = int(sys.stdin.readline()) N = int(sys.stdin.readline()) dem..