#include using namespace std; int check_prime(long int a) { int i; bool isPrime = true; for(i = 2; i <= a / 2; ++i) { if(a % i == 0) { isPrime = false; break; } } if (isPrime) return 1; else return 0; } long divisor(long int a) { int i,k=-99999; for(i=3;i<=sqrt(a);i++) { if((a%i==0)) { k=(max(i,k)); break; }} return k; } long int even(long int a) { int x=a,count=0; if(a==2) return 3; else { while(x%2==0) { x/=2; count++; } int y=pow(2,count); if(y==a) return 1+2*even(y/2); else return 1+(a/y)*even(y); } } long int odd(long int a) { int x; if(a==1) return 1; x=check_prime(a); if(x==1) return a+1; else { x=divisor(a); if(x%2==0) return 1+2*even(x); else return 1+(a/x)*odd(x); } } long max_moves(long int a) { if(a%2==0) return even(a); else return odd(a); } long longestSequence(vector a) { int i,sum=0; for(i=0;i> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } long result = longestSequence(a); cout << result << endl; return 0; }