fork(1) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int a,b,ile,licznikA,licznikB,A,B,C;
  8. int tabA[100],tabB[100];
  9. cin>>ile;
  10. for(int i=0;i<ile;i++)
  11. {
  12. for(int j=0;j<100;j++)
  13. {
  14. tabA[j]=1;
  15. tabB[j]=1;
  16. }
  17. A=1;
  18. B=1;
  19. C=1;
  20. licznikA=0;
  21. licznikB=0;
  22. cin>>a>>b;
  23. if(a<=1 && b>1)
  24. {
  25. cout<<b<<endl;
  26. continue;
  27. }
  28. else if(a>1 && b<=1)
  29. {
  30. cout<<a<<endl;
  31. continue;
  32. }
  33. else if(a<=1 && b<=1)
  34. {
  35. cout<<1<<endl;
  36. continue;
  37. }
  38. A=a;
  39. B=b;
  40. for(int j=2;true;j++)
  41. {
  42. if(a%j==0)
  43. {
  44. a/=j;
  45. tabA[licznikA]=j;
  46. j=1;
  47. licznikA++;
  48. }
  49. if(a==1)
  50. {
  51. break;
  52. }
  53. }
  54. for(int j=2;true;j++)
  55. {
  56. if(b%j==0)
  57. {
  58. b/=j;
  59. tabB[licznikB]=j;
  60. j=1;
  61. licznikB++;
  62. }
  63. if(b==1)
  64. {
  65. break;
  66. }
  67. }
  68. if(licznikA>=licznikB)
  69. {
  70. for(int m=0;m<licznikA;m++)
  71. {
  72. for(int k=0;k<licznikB;k++)
  73. {
  74.  
  75. if(tabA[m]==tabB[k] && tabA[m]!=tabA[m-1])
  76. {
  77. C*=tabB[k];
  78. }
  79. }
  80. }
  81. cout<<(A*B)/C<<endl;
  82. }
  83. else
  84. {
  85. for(int m=0;m<licznikB;m++)
  86. {
  87. for(int k=0;k<licznikA;k++)
  88. {
  89. if(tabB[m]==tabA[k] && tabB[m]!=tabB[m-1])
  90. {
  91. C*=tabA[k];
  92. }
  93. }
  94. }
  95. cout<<(A*B)/C<<endl;
  96. }
  97. }
  98. return 0;
  99. }
  100.  
Success #stdin #stdout 0s 3472KB
stdin
4
18 36
36 18
18 36
36 18
stdout
36
36
36
36