본문 바로가기

Develop/백준 (Cpp)655

[백준] 23888번 : 등차수열과 쿼리 (C++) 23888번 : 등차수열과 쿼리 문제) 등차수열은 연속하는 두 항의 차이가 일정한 수열을 뜻한다. 연속한 두 항 중 뒷항에서 앞항을 뺀 값을 공차라고 한다. 초항이 �$a$이고 공차가 �$d$인 등차수열이 주어진다. 수열의 i번째 원소를 Ai라 할 때, 다음 쿼리를 수행하는 프로그램을 작성하시오. 1 l r : Al, A{l+1}, ... , Ar의 합을 출력한다. 2 l r : Al, A{l+1}, ... , A_r의 최대공약수를 출력한다. 이는 Al, A{l+1}, ... , A_r의 공통된 약수 중 가장 큰 양의 정수를 뜻한다. 입력 : 첫째 줄에 수열의 초항 a와 공차 d가 주어진다. 둘째 줄에는 쿼리의 개수 q가 주어진다. 셋째 줄부터 q개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. 출력 : 각.. 2024. 1. 16.
[백준] 2247번 : 실질적 약수 (C++) 2247번 : 실질적 약수 문제) 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 모든 자연수 N은 1과 자기 자신(N)을 약수로 갖게 된다. 실질적 약수(actual divisor)라는 것이 있다. 자연수 N의 약수들 중에서 1과 자기 자신(N)을 제외한 약수를 실질적 약수라고 한다. 따라서 6의 실질적 약수는 2, 3이며, 13의 실질적 약수는 없다. SOD(Sum Of Divisor)라는 함수를 정의하자. SOD(n)은 정수 n의 모든 실질적 약수의 합을 가리킨다. 따라서 SOD(6) = 5이며, SOD(13) = 0이다. 한편, CSOD(Cumulative SOD)라는 함수도 정의해 볼 수 있다. CSOD(n)은 SOD(1) + SOD(2) + … + SO.. 2024. 1. 16.
[백준] 2436번 : 공약수 (C++) 2436번 : 공약수 문제) 어떤 두 자연수에 공통인 약수들 중에서 가장 큰 수를 최대공약수라고 하고, 두 자연수의 공통인 배수들 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 두 자연수 12와 90의 최대공약수는 6이며, 최소공배수는 180이다. 이와 반대로 두 개의 자연수 A, B가 주어졌을 때, A를 최대공약수로, B를 최소공배수로 하는 두 개의 자연수를 구할 수 있다. 그러나, 이러한 두 개의 자연수 쌍은 여러 개 있을 수 있으며, 또한 없을 수도 있다. 예를 들어, 최대공약수가 6이며 최소공배수가 180인 두 정수는 위의 예에서와 같이 12와 90일 수도 있으며, 30과 36, 18과 60, 혹은 6과 180일 수도 있다. 그러나, 최대공약수가 6이며 최소공배수가 20인 두 자연수는 .. 2024. 1. 14.
[백준] 6219번 : 소수의 자격 (C++) 6219번 : 소수의 자격 문제) 농부 존은 소들에게 소수로 차례차례 번호를 매기는 중이다. 베시는 이 번호에서 숫자 D가 몇 번이나 등장하는지 궁금해졌다. 베시를 도와 범위 A..B(A와 B 포함)내에서 숫자 D를 포함하는 소수의 개수를 구해보자. 소수는 두개의 자연수(1과 자기자신)로만 나누어 떨어지는 자연수를 말한다. 소수의 예로는 2,3,5,7,11,13,17,19,23,29.. 가 있다. 입력 : 세 정수 A, B, D가 주어진다. 출력 : 주어진 범위 내에서 숫자 D를 포함하는 소수의 개수를 출력한다. 풀이) 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 35 36 37 38.. 2024. 1. 14.