Troszkę przekombinowałeś ze swoim rozwiązaniem. Możliwe, że jest sposób na jego poprawienie, ale skupię się na tym jak można zrobić to krócej/lepiej:
- W standardzie C++ nie ma VLA. Lepiej użyć po prostu vectora
- Funkcja gcd jest trochę zbyt skomplikowana. Wystarczy prosta pętla i modulo.
- Możesz od razu wypisać wynik na wyjściu. Tablice tylko wszystko komplikują:
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int a, b;
cin >> a >> b;
int results = a * b / [tutaj był spojler wielki!](a, b);
cout << result << "\n";
}
}
P.S. W C++17 mógłbyś użyć pewnych funkcji z nagłówka <numeric>
, ale to jeszcze nie teraz - może w przyszłości rozwiązanie będzie krótsze 