fork download
  1. //#pragma GCC optimize("O3, unroll-loops")
  2.  
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5.  
  6. const int MAXN = 1e6 + 5;
  7.  
  8. int arr[MAXN];
  9. vector<int> D(MAXN, 1);
  10.  
  11. void precompute_D() {
  12. for (int i = 2; i < MAXN; ++i) {
  13. for (int j = i; j < MAXN; j += i) {
  14. D[j]++;
  15. }
  16. }
  17. }
  18.  
  19. int32_t main() {
  20. precompute_D();
  21.  
  22. int ans = 0;
  23. for(int i = 1;i<MAXN;++i){
  24. int x = i;
  25. int steps = 0;
  26. while(x>2){
  27. ++steps;
  28. x = D[x];
  29. }
  30. ans = max(ans,steps);
  31. }
  32. cout<<ans<<endl;
  33.  
  34. return 0;
  35. }
Success #stdin #stdout 0.04s 6992KB
stdin
7 6
6 4 1 10 3 2 4
2 1 7
2 4 5
1 3 5
2 4 4
1 5 7
2 1 7
stdout
6