fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define mx 1000000
  4.  
  5. char s[mx], new_s[mx], store[50];
  6.  
  7. long long gcd();
  8.  
  9. int main()
  10. {
  11. int T;
  12. scanf("%d", &T);
  13.  
  14. while (T--)
  15. {
  16. scanf(" %[^\n]", s);
  17.  
  18. int r, w = 0;
  19.  
  20. for (r = 0; s[r] != '\0'; r++)
  21. {
  22. if (s[r] == ' ' && s[r-1] == ' ')
  23. {
  24. continue;
  25. }
  26.  
  27. new_s[w++] = s[r];
  28. }
  29. new_s[w] = '\0';
  30.  
  31. long long ara[100];
  32.  
  33. long long i, j, k = 0, x = 0, n, GCD, max_gcd = 1;
  34.  
  35. for (i = 0; i <= strlen(new_s); i++)
  36. {
  37. if (new_s[i] == ' ' || new_s[i] == '\0')
  38. {
  39. store[k] = '\0';
  40.  
  41. n = atoi(store);
  42. ara[x++] = n;
  43. k = 0;
  44. }
  45.  
  46. else
  47. {
  48. store[k++] = new_s[i];
  49. }
  50. }
  51.  
  52. for (i = 0; i < x; i++)
  53. {
  54. for (j = 0; j < x; j++)
  55. {
  56. if (i == j)
  57. continue;
  58. else
  59. {
  60. GCD = gcd(ara[i], ara[j]);
  61.  
  62. if (max_gcd < GCD)
  63. max_gcd = GCD;
  64. }
  65. }
  66. }
  67.  
  68. printf("%lld\n", max_gcd);
  69. }
  70.  
  71. return 0;
  72. }
  73.  
  74. long long gcd(long long a, long long b)
  75. {
  76. if(b == 0) return a;
  77. else return gcd(b, a%b);
  78. }
  79.  
Success #stdin #stdout 0s 4536KB
stdin
2
12    5     20       
10 20
stdout
20
10