//---- 세팅 ----//
const fs = require('fs');
const stdin = (
process.platform === 'linux'
? fs.readFileSync('/dev/stdin').toString()
: `\
3
1 45000
6 10
13 17
`
).split('\n');
const input = (() => {
let line = 0;
return () => stdin[line++];
})();
//---- 풀이 -----//
// 최대공약수는 두 수 A와 B의 공통된 약수 중에 가장 큰 정수이다.
// 최대공약수를 구하는 가장 쉬운 방법은 2부터 min(A, B)까지 모든 정수로 나누어보는 방법이다.
// 최대공약수가 1인 두 수를 서로소(Coprime)라고 한다.
const t = Number(input());
const gcd = (a, b) => { //최대공약수는 줄여서 GCD라고 쓴다.
let res = 1;
for (let i = 1; i <= Math.min(a, b); i++) {
if (a % i === 0 && b % i === 0) res = i;
}
return res;
};
const lcm = (a, b) => { // 최소공배수는 줄여서 LCM이라고 한다.
return (a * b) / gcd(a, b);
};
for (let i = 0; i < t; i++) {
const [a, b] = input().split(' ').map(Number);
console.log(lcm(a, b));
}
// 두 수의 최소공배수는 두 수의 공통된 배수 중에서 가장 작은 정수를 말한다.
// 최소공배수는 위에서 구했던 GCD(최대 공약수)를 응용해서 구할 수 있다.
// 두 수 a, b의 최대공약수를 gcd라고 했을 때, 최소공배수 lcm = gcd * (a/gcd) * (b/gcd) 이다.
// a * b = gcd * lcm 과 같다는 원리를 이용하는 것이다.
// lcm = (a*b) / gcd 이다.