fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define int long long
  5.  
  6. void solve() {
  7. int n;
  8. cin >> n;
  9.  
  10. vector<int> a(n);
  11.  
  12. int g = 0;
  13.  
  14. for(int i = 0; i < n; i++) {
  15. cin >> a[i];
  16. g = __gcd(g, a[i]);
  17. }
  18.  
  19. int cnt = 0;
  20.  
  21. for(int x : a) {
  22. if(x == g) cnt++;
  23. }
  24.  
  25. if(cnt > 0) {
  26. cout << n - cnt << '\n';
  27. return;
  28. }
  29.  
  30. int best = 1e9;
  31.  
  32. for(int i = 0; i < n; i++) {
  33. int cur = 0;
  34.  
  35. for(int j = i; j < n; j++) {
  36. cur = __gcd(cur, a[j]);
  37.  
  38. if(cur == g) {
  39. best = min(best, j - i + 1);
  40. break;
  41. }
  42. }
  43. }
  44.  
  45. cout << n + best - 2 << '\n';
  46. }
  47.  
  48. signed main() {
  49. ios::sync_with_stdio(false);
  50. cin.tie(nullptr);
  51.  
  52. int t;
  53. cin >> t;
  54.  
  55. while(t--) solve();
  56. }
Success #stdin #stdout 0s 5316KB
stdin
3
3
12 20 30
6
1 9 1 9 8 1
3
6 14 15
stdout
4
3
3