mathematics 2

BOJ 17433 - 신비로운 수

모든 i번째 수에 대하여 나머지 R이 되도록 하는 숫자를 구하는 문제이다. i번째 수를 M으로 나누었을때를 식으로 표현하면 다음과 같이 나타낼 수 있다. $N_i=MQ_i+R$ 첫번째 수와 두번째 수를 M으로 나눈 항등식으로 표현하면 아래와 같다. $N_1=MQ_1+R$ $N_2=MQ_2+R$ 두 수를 빼면 $N_1-N_2=(Q_1-Q_2)M$ 와 같이 나타낼 수 있다. 인접한 수들에 대해 전부 해보면 $N_1-N_2=(Q_1-Q_2)M$ $N_2-N_3=(Q_2-Q_3)M$ $N_3-N_4=(Q_3-Q_4)M$ $N_4-N_5=(Q_4-Q_5)M$ ... $N_{n-1}-N_n=(Q_{n-1}-Q_n)M$ 위 식을 토대로 인접한 두 수의 차의 GCD값이 구하고자 하는 M의 값임을 알 수 있다. 주어진 ..

BOJ 2024.01.27

BOJ 2014 - 소수의 곱

k개의 소수들의 곱을 순서대로 나열할 때, n번째로 오는 숫자를 구하는 문제이다. 가장 단순하게 k개의 소수들로 만들 수 있는 숫자들을 만든다는 전략을 사용해 보자. i번째로 오는 수에 k개의 소수를 각각 곱하여 만들 수 있는 수를 우선순위큐에 넣어준다. 중복되는 경우가 있을 수 있기 때문에 하나의 경우만 있을 수 있도록 처리해 준다. 문제의 메모리가 적으므로 메모리 초과에 유의하자. 더보기 #define _CRT_SECURE_NO_WARNING #include #include #include #include using namespace std; using namespace __gnu_cxx; // utils #define fastio ios::sync_with_stdio(false);cin.tie(0)..

BOJ 2024.01.23