문제링크 : https://www.acmicpc.net/problem/24313#include using namespace std;typedef long long ll;int a1, a0, c, n0;int arr[101];int main(void){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> a1 >> a0 >> c >> n0; int tmp1 = a1*n0+a0; int tmp2 = c * n0; if (a1 > c) cout 문제에 주어진 조건을 그대로 따라하면 된다.다만 주의할점으로 a1이 c보다 큰지 체크해야한다.만약 a1 > c라면 어떤 n에서도 c * n이 a1 * n + a0보다 클 수 없기 때문에 0을 ..
문제링크 : https://www.acmicpc.net/problem/9613#include using namespace std;typedef long long ll;int T, N;int arr[101];int main(void){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> T; while(T--) { cin >> N; long long result = 0; for(int i=0; i> arr[i]; for(int i=0; i 주어진 값에 대한 최대공약수를 구하고, 이러한 모든 최대공약수 합을 구하는 문제이다.입력받은 값을 배열로 저장하고, 현재 값 기준 나머지 값들과의 최대..
문제링크 : http://acmicpc.net/problem/2485#include using namespace std;typedef long long ll;int N;int arr[100001];vectorv;int main(void){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> N; for(int i=0; i> arr[i]; for(int i=0; i 최대공약수를 활용한 문제이다.각 거리의 간격을 살펴보면 다음과 같다.1 3 7 13간격 : 2, 4, 6 (필요 0개, 1개, 2개) 각 간격의 최대 공약수를 구하면 2다.필요 갯수를 살펴보면 해당 간격/최대공약수 - 1을 하면 각 간격의 필요 개수인 것을 알 수 있다.
문제링크 : https://www.acmicpc.net/problem/1735#include using namespace std;typedef long long ll;int A1, B1, A2, B2;int main(void){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> A1 >> A2 >> B1 >> B2; int a = A1*B2 + B1*A2; int b = A2*B2; int tmp = gcd(a,b); cout 주어진 값에 따라 공통분모와 그에 대한 분수를 구해준다.기약 분수를 구해야하기 때문에 구한 분모와 분수에 대해 최대공약수를 GCD를 통해 구해주고,분모와 분수에 각각 나눠주면 된다.