#include using namespace std; #define endl "\n" #define llt long long int llt floorSqrt(llt x) { // Base cases if (x == 0 || x == 1) return x; // Do Binary Search for floor(sqrt(x)) llt start = 1, end = x, ans; while (start <= end) { llt mid = (start + end) / 2; // If x is a perfect square if (mid*mid == x) return mid; // Since we need floor, we update answer when mid*mid is // smaller than x, and move closer to sqrt(x) if (mid*mid < x) { start = mid + 1; ans = mid; } else // If mid*mid is greater than x end = mid - 1; } return ans; } bool isPrime(llt n) { if(n<=1) return false; for(int i=2;i<=sqrt(n);i++) { if(n%i==0) return false; } return true; } llt fun(llt n) { llt ans=0,cnt=0; if(n==1) ans+=1; else if(isPrime(n)) ans+=n+1; else if(n%2==0) { ans+=n+fun(n/2); } else if(n%2==1 && !isPrime(n)) { for(int i=2;i<=sqrt(n);i++) { if(n%i==0) { cnt=i; break; } } ans+=n+fun(n/cnt); cnt=0; } return ans; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); llt n; cin>>n; llt res=0; vector vec(n); for(int i=0;i>vec[i]; for(int i=0;i