본문 바로가기

알고리즘/백준 - 파이썬71

백준) 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.
백준) 1929번 소수 구하기 문제 (파이썬) 문제) M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. a, b = map(int,input().split()) for i in range(a, b+1): if i == 1: # 1은 소수가 아니므로 제외 continue for j in range(2,int(i**0.5)+1): # i**0.5는 제곱근을 의미 if i % j == 0: # 약수가 존재하므로 소수가 아님 break # 더이상 검사할 필요가 없으므로 멈춤 else: print(i) 이번 문제는 a, b를 입력하고, 반복문을 통해 a 부터 b+1까지 반복한다. 1은 소수가 아니므로 continue를 써 통과하도록 하였다. 두번째 반복문은 소수에 대한 정의가 나온다. 2부터 i의 제곱근까지 나눠떨어지는 숫자는 소수가 아니다. 이것.. 2022. 7. 19.
백준) 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.
백준) 16170번 오늘의 날짜는? 문제 (파이썬) 문제) 2018 SCAL-MOOKJA에 출전하기로 한 무근이와 인서는 대회 준비를 위해 같이 모여 문제를 풀기로 했다. 그런데 어느 날, 일어나서 날짜를 확인해 보니 무근이와 인서의 시계가 서로 다른 날짜를 가리키고 있었다. 두 사람이 정확한 날짜에 모일 수 있도록 문제를 푸는 지금 시각이 UTC+0(세계 표준시)을 기준으로 무슨 날짜인지 출력해 주는 프로그램을 작성하자. 만약 서울에서 확인한 시각이 2018년 9월 29일 오후 2시 정각이라면 UTC+0 기준의 시각은 2018년 9월 29일 오전 5시 정각이다. import datetime data = datetime.datetime.now() + datetime.timedelta(hours=9) # 한국 시간은 UTC + 9 이다. print(data.. 2022. 7. 18.
백준) 6749번 Next in line 문제 (파이썬) 문제) 이번 문제는 두 수가 주어지면 다음에 나올 수를 예측하는 문제이다. a = int(input()) b = int(input()) print(b+(b-a)) 이번 문제는 머리를 식힐 겸 쉬운 문제로 골랐다. a, b를 입력 받고, b - a를 뺀 다음 b를 더해 다음 수를 예측하는 것이다. 요즘 너무 나태해진 것 같아서 다시 쉬운문제에서 부터 접근하려한다. 다시 맘을 잡아보자! 이해가 안되시거나 틀린 정보는 댓글로 알려주시면 감사하겠습니다! 2022. 7. 14.
백준) 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.
728x90