백준) 4849번 베르트랑 공준 문제 (파이썬)
문제) 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. num = [] for i in range(2, 246913): # 문제에서 주어진 범위 cnt = 0 for j in range(2, int(i**0.5)+1): # 에라토스테네스의 ..
2022. 7. 20.
백준) 1934번 최소공배수 문제 (파이썬)
문제) 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있으며, 최소 공배수는 30이다. 두 자연수 A와 B가 주어졌을 때, A와 B의 최소공배수를 구하는 프로그램을 작성하시오. T = int(input()) # 유클리드 호제법 for i in range(T): a, b = map(int,input().split()) x, y = a, b while y != 0: # y가 0이 아니면 계속 반복 temp = x # temp = 6, 10, 6, 4 x = y # x = 10, 6, 4, 2 y = temp % y # y = 6, 4, 2, 0 ..
2022. 7. 19.
백준) 2581번 소수 문제 (파이썬)
문제) 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. X = int(input()) Y = int(input()) arr = [] for i in range(X, Y+1):# Y의 입력값을 포함하기 위해 +1을 함 if i == 1: # 1은 소수가 아니므로 pass pass elif i == 2: # 2이면 리스트에 넣음 (2는 소수) arr.append(i) else: for j in range(2, i): ..
2022. 7. 12.