fork download
  1. #include<iostream>
  2. #include<vector>
  3. #include<math.h>
  4. #include<set>
  5. #include<queue>
  6. #include<stdio.h>
  7. #include<cstdio>
  8. #include<algorithm>
  9. #include<iomanip>
  10. #include<string.h>
  11. using namespace std;
  12. #define ll long long
  13. #define pb push_back
  14. #define po pop_back
  15. #define mp make_pair
  16. #define FOR(i,a,b) for(long long int i=a;i<=b;i++)
  17. #define NFOR(i,a,b) for(long long int i=a;i>=b;i--)
  18. int main()
  19. {
  20. ll t;
  21. cin>>t;
  22. vector<ll>v;
  23. while(t--)
  24. {
  25. ll n,c,i,j,y;
  26. cin>>n;
  27. ll a[n];
  28. ll dp[n];
  29. FOR(i,0,n-1)
  30. {
  31. cin>>a[i];
  32. dp[i]=1;
  33. }
  34. FOR(i,0,n-2)
  35. {
  36. y=a[i];
  37. FOR(j,i+1,n-1)
  38. {
  39. if(__gcd(y,a[j])>1)
  40. {
  41. dp[j]=max(dp[i],dp[j]+1);
  42. }
  43. }
  44. }
  45. FOR(i,0,n-1)
  46. cout<<dp[i]<<" ";
  47. }
  48. return 0;
  49. }
Success #stdin #stdout 0s 3472KB
stdin
4
2 3 1 4
stdout
1 1 1 2 3 4 1 2 3 4 1 2 3 4