#include #include #include using namespace std; long longestSequence(vector a) { long long result = 0; for(int i = 0; i < a.size(); i++){ vector v; long long curDivisor = 2; long long curRemainder = a[i]; while(curDivisor <= sqrt(curRemainder)){ if(curRemainder % curDivisor == 0){//if it's divisible v.push_back(curDivisor); curRemainder /= curDivisor; }else{ curDivisor++; } } v.push_back(curRemainder); //v is complete long long moves = 1; long long temp = 1; for(long i = v.size() - 1; i >= 0; i--){ temp *= v[i]; moves += temp; } if(a[i] == 1) moves = 1; result += moves; } return result; } int main() { int n; cin >> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } cout << longestSequence(a) << endl; return 0; }