fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. struct groups{
  7. int a;
  8. int b;
  9. };
  10.  
  11. int gcd(int a, int b){
  12.  
  13. int commonDiv = 1;
  14.  
  15. vector<int> lDivs;
  16. vector<int> bDivs;
  17.  
  18.  
  19. for(int i=1; i<=((a>b)?a:b); i++){
  20.  
  21. if(a%i == 0){
  22. if(a > b) bDivs.push_back(i);
  23. else lDivs.push_back(i);
  24. }
  25. if(b%i == 0){
  26. if(b > a) bDivs.push_back(i);
  27. else lDivs.push_back(i);
  28. }
  29. }
  30.  
  31. for(int j=0; j<lDivs.size(); j++){
  32. for(int k=0; k<bDivs.size(); k++){
  33. if(lDivs[j] == bDivs[k] && lDivs[j] > commonDiv){
  34. commonDiv = lDivs[j];
  35. }
  36. }
  37. }
  38.  
  39. return commonDiv;
  40. }
  41.  
  42. int main() {
  43.  
  44. int n;
  45.  
  46. cin >> n;
  47.  
  48. groups data[n];
  49. int results[n];
  50.  
  51.  
  52. for(int i=0; i<n; i++){
  53. cin >> data[i].a >> data[i].b;
  54.  
  55. results[i]=(data[i].a*data[i].b)/gcd(data[i].a, data[i].b);
  56. }
  57.  
  58. for(int result : results){
  59. cout << result << endl;
  60. }
  61.  
  62.  
  63. return 0;
  64. }
Success #stdin #stdout 0s 4432KB
stdin
2
12 15
11 22
stdout
60
22