본문 바로가기

정수론35

[백준] 1990번 : 소수인팰린드롬 (C++) 1990번 : 소수인팰린드롬 문제) 151은 소수이면서 동시에 팰린드롬이기 때문에 소수인 팰린드롬이다. 팰린드롬이란 앞으로 읽어나 뒤로 읽으나 같은 수를 말한다. 예를 들어 1234는 앞으로 읽으면 1234지만, 뒤로 읽으면 4321이 되고 이 두 수가 다르기 때문에 팰린드롬이 아니다. 두 정수 a, b가 주어졌을 때, a이상 b이하인 소수인 팰린드롬을 모두 구하는 프로그램을 작성하시오. 입력 : 입력은 첫째 줄에 공백으로 구분된 두 자연수 a, b가 주어진다. 단 5 ≤ a < b ≤ 100,000,000 이다. 출력 : 첫째 줄부터 차례로 증가하는 순서대로 한 줄에 한개씩 소수인 팰린드롬을 출력한다. 마지막 줄에는 -1을 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1.. 2023. 11. 24.
[백준] 11687번 : 팩토리얼 0의 개수 (C++) 11687번 : 팩토리얼 0의 개수 문제) 가장 끝의 0의 개수가 M개인 N! 중에서 가장 작은 N을 찾는 프로그램을 작성하시오. 입력 : 첫째 줄에 M (1 ≤ M ≤ 100,000,000)이 주어진다. 출력 : 가장 끝의 0의 개수가 M개인 N! 중에서 가장 작은 N을 출력한다. 그러한 N이 없는 경우에는 -1을 출력한다. 풀이) 뒷 자리에 0이 만들어지는 이유는 2 * 5 가 존재하기 때문이다. 팩토리얼이 진행되면서 (1 * 2 * 3 * 4 .....) 2의 배수는 무조건 많기 때문에 5의 배수를 이진 탐색을 통해 세어주면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3.. 2023. 11. 8.
[백준] 1188번 : 음식 평론가 (C++) 1188번 : 음식 평론가 문제) 선영이의 직업은 소시지 요리사이다. 소시지를 팔기 전에 음식 평론가 M명을 모아서 맛을 테스트해보려고 한다. 선영이는 동일한 소시지를 총 N개를 준비했다. 이 소시지를 모든 평론가들이 같은 양을 받게 소시지를 자르려고 한다. 이때, 소시지를 자르는 횟수를 최소로 하려고 한다. 예를 들어, 소시지가 2개, 평론가가 6명있는 경우를 생각해보자. 이때, 각 소시지를 세 조각으로 만든 다음, 각 평론가에게 한 조각씩 주면 된다. 이 경우에 소시지는 총 네 번 자르게 된다. 다른 경우로 소시지가 3개, 평론가가 4명 있는 경우를 생각해보자. 이때는 각 소시지의 크기를 3:1로 잘라서 큰 조각을 평론가에게 하나씩 주고, 남은 조각을 평론가에게 주면 모두 동일한 양을 받게 된다. 소.. 2023. 9. 27.
[백준] 2553번 : 마지막 팩토리얼 수 (C++) 2553번 : 마지막 팩토리얼 수 문제) N!의 값을 계산한 후에, 0이 아닌 가장 낮은 자리 수를 구하시오. 예를 들어, 4! = 24 이기 때문에, 0이 아닌 가장 낮은 자리 수는 4이다. 또, 5! = 120이기 때문에, 0이 아닌 가장 낮은 자리 수는 2 이다. 입력 : 첫째 줄에 N이 주어진다. N은 20,000보다 작거나 같은 자연수 이다. 출력 : 첫째 줄에 N!의 0이 아닌 마지막 자리수를 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 // 2553. 마지막 팩토리얼 수 #include using namespace std; int n; int main() { cin >> n; lo.. 2023. 9. 23.