#include #include #include using namespace std; long long totalMoves; long long sumMoves; void Moves(long long stickLen) { long long minDivider = 2; long long localMoves = 0; while (minDivider <= stickLen/minDivider) { if (stickLen % minDivider == 0) { localMoves = stickLen / minDivider; sumMoves += localMoves; stickLen = localMoves; minDivider = 2; continue; } minDivider++; } } void CalcMoves(long long stickLen) { if (stickLen == 1) totalMoves += 1; else { sumMoves = 0; Moves(stickLen); totalMoves += sumMoves + stickLen + 1; } } int main() { int n; cin >> n; vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } for_each(a.begin(), a.end(), CalcMoves); cout << totalMoves << endl; return 0; }