#include using namespace std; vector primeFactors(long n) { vector ret; // Print the number of 2s that divide n while (n%2 == 0) { ret.push_back(2); //printf("%d ", 2); n = n/2; } // n must be odd at this point. So we can skip // one element (Note i = i +2) for (long i = 3; i <= sqrt(n); i = i+2) { // While i divides n, print i and divide n while (n%i == 0) { ret.push_back(i); //printf("%d ", i); n = n/i; } } // This condition is to handle the case when n // is a prime number greater than 2 if (n > 2){ ret.push_back(n); //cout<<"PRIMO"; //printf ("%d ", n); } return ret; } long diviso(long x){ vector factors = primeFactors(x); long sum = 1,mult =1; for(int i=factors.size()-1;i>=0;--i){ mult *= factors[i]; sum += mult; } return sum; } long longestSequence(vector a) { long sum = 0; for(int 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; }