C++

[백준 알고리즘] 2702번 : 초6 수학, c++

2022. 3. 3. 23:01

https://www.acmicpc.net/problem/2702

 

2702번: 초6 수학

첫째 줄에 테스트 케이스의 개수 T(1<=T<=1,000)가 주어진다. 각 테스트 케이스는 두 정수 a와 b로 이루어져 있고, 공백으로 구분되어 있다. (1 <= a,b <= 1,000)

www.acmicpc.net

c++로 백준 2702번 문제를 풀어보겠다.

 

 

 

 

 

문제

두 정수 a와 b 최소공배수는 두 수의 공통된 배수 중 가장 작은 수이고, 최대공약수는 두 수의 공통된 약수중 가장 큰 수이다.

a와 b가 주어졌을 때, 최소공배수와 최대공약수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 T(1<=T<=1,000)가 주어진다. 각 테스트 케이스는 두 정수 a와 b로 이루어져 있고, 공백으로 구분되어 있다. (1 <= a,b <= 1,000)

출력

각 테스트 케이스에 대해 최소공배수와 최대공약수를 차례대로 출력한다.

예제 입력 1 복사

3
5 10
7 23
42 56

예제 출력 1 복사

10 5
161 1
168 14

 

 

 

 

<문제 풀이>

1. T를 선언한 후 입력받는다.

2. for 반복문을 T번 반복하며 주어진 문제를 해결한다.

 

- for 반복문 코드 내용 -

숫자 a, b를 입력받는다.

2부터 a까지 for문을 돌며, a, b 와 나누었을 때 동시에 나누어 떨어지는 수를 찾아 최대공약수 값에 저장한다.

최소공배수 값으로 최대공약수*(a를 최대공약수로 나눈 몫)*(b를 최대공약수로 나눈 몫)을 저장한다.

구한 최소공배수, 최대공약수 값을 순서대로 출력한다.

 

 

 

코드는 다음과 같다.