#include using namespace std; long largestfactor(long a){ long b=0; for(int i=2;i<=a/2;i++){ if(a%i==0){ b=i; } } if(b==0) return a; return b; } long largestPrimeFactor(long value){ unsigned long long divisor=2; //divisor of value unsigned long long pdiv=2; // divisor of divisor unsigned long long lprime=1; // largest prime while (true) { if (value%divisor==0) { if (divisor%pdiv==0&& pdiv myMap; long var=0; if(myMap.count(a)){ return myMap[a]; } var=largestPrimeFactor(a); myMap[a]= var* (longestSequence(a/var)) +1 ; return myMap[a]; } int main() { int n; cin >> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } long result =0; for(int i=0;i