문제
두 수 a와 b가 주어졌을 때, a와 b의 최소 공배수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 n이 주어진다. 다음 n개 줄에는 a와 b가 주어진다. a와 b사이에는 공백이 하나 이상 있다. 두 수는 백만보다 작거나 같은 자연수이다.
출력
각 테스트 케이스에 대해서 입력으로 주어진 두 수의 최소공배수를 출력한다.
예제 입력 1
3 15 21 33 22 9 10 |
예제 출력 1
105 66 90 |
더보기
Solution
#include<stdio.h>
unsigned long long int gcd(unsigned long long int x,unsigned long long int y)
{
if(x<y)
{
unsigned long long int temp=x;
x=y;
y=temp;
}
while(y!=0)
{
unsigned long long int temp=x%y;
x=y;
y=temp;
}
return x;
}
unsigned long long int lcm(unsigned long long int x,unsigned long long int y)
{
return x*y/gcd(x,y);
}
int main(void)
{
int n;
scanf("%d", &n);
for(int i=0;i<n;i++)
{
unsigned long long int a, b;
scanf("%llu %llu", &a, &b);
printf("%llu\n", lcm(a,b));
}
return 0;
}
728x90
'백준 알고리즘' 카테고리의 다른 글
<백준 알고리즘> 11866번: 요세푸스 문제 0 (0) | 2020.10.19 |
---|---|
<백준 알고리즘> 9506번: 약수들의 합 (0) | 2020.10.17 |
<백준 알고리즘> 8979번: 올림픽 (0) | 2020.10.17 |
<백준 알고리즘> 11772번: POT (0) | 2020.10.17 |
<백준 알고리즘> 10539번: 수빈이와 수열 (0) | 2020.10.17 |