fork download
  1. #include <bits/stdc++.h>
  2. #define VuDucNam ios_base::sync_with_stdio(false);
  3. #define Lop9a6 cin.tie(NULL);
  4. #define THCSPhamVanDong cout.tie(NULL);
  5. #define ll long long
  6. #define el cout << '\n'
  7. #define sz(a) (ll) a.size()
  8. #define all(a) a.begin(), a.end()
  9. #define fi first
  10. #define se second
  11. #define fill(a, x) memset(a, x, sizeof(a))
  12. #define file(name) \
  13.   if (fopen(name ".inp", "r")) \
  14.   { \
  15.   freopen(name ".inp", "r", stdin); \
  16.   freopen(name ".out", "w", stdout); \
  17.   }
  18. #define TIME (1.0 * clock() / CLOCKS_PER_SEC)
  19. #define RUNTIME cerr << "\nRuntime: " << TIME << "s.\n"
  20.  
  21. using namespace std;
  22.  
  23. const int N6 = 1e6 + 5;
  24. const ll MOD = 1e9 + 7;
  25. const ll inf = LLONG_MAX;
  26.  
  27. int n,a[105];
  28.  
  29. void solve()
  30. {
  31. cin >> n;
  32. for (int i = 1; i <= n; i++)
  33. cin >> a[i];
  34. sort(a + 1, a + n + 1);
  35. int G = a[2] - a[1];
  36. for (int i = 3; i <= n; i++)
  37. G = __gcd(G, a[i] - a[1]);
  38. set<int> div;
  39. for (int i = 1; i <= sqrt(G); i++)
  40. {
  41. if(G % i == 0)
  42. {
  43. if(i > 1) div.insert(i);
  44. if(G / i > 1) div.insert(G / i);
  45. }
  46. }
  47. if(div.empty()) cout << -1;
  48. else for (auto u : div) cout << u << " ";
  49. }
  50.  
  51. int main()
  52. {
  53. VuDucNam Lop9a6 THCSPhamVanDong
  54. // file();
  55. solve();
  56. RUNTIME;
  57. return 0;
  58. }
  59.  
Success #stdin #stdout #stderr 0.01s 5280KB
stdin
Standard input is empty
stdout
-1
stderr
Runtime: 0.005232s.