#include using namespace std; #define vi vector < int > #define pii pair < int , int > #define vvi vector #define pb push_back #define mp make_pair #define ff first #define ss second #define foreach(it,v) for( __typeof((v).begin())it = (v).begin() ; it != (v).end() ; it++ ) #define ll long long #define llu unsigned long long #define MOD 1000000007 #define INF 0x3f3f3f3f #define dbg(x) { cout<< #x << ": " << (x) << endl; } #define dbg2(x,y) { cout<< #x << ": " << (x) << " , " << #y << ": " << (y) << endl; } #define all(x) x.begin(),x.end() #define mset(x,v) memset(x, v, sizeof(x)) #define sz(x) (int)x.size() #define s(a) scanf("%d",&a) #define sl(a) scanf("%lld",&a) ll gcd(ll a, ll b) {if (a == 0 || b == 0) return max(a,b); if (b % a == 0) return a; return gcd(b%a, a);} ll hcf(ll a, ll b) {if(b>a) return (hcf(b, a)); if(a%b==0) return b; return (hcf(b, a%b));} ll modpow(ll a,ll b) {ll res=1;a%=MOD;for(;b;b>>=1){if(b&1)res=res*a%MOD;a=a*a%MOD;}return res;} ll mulmod(ll a, ll b, ll m) {int64_t res = 0;while (a != 0){if(a & 1)res =(res+b)%m;a>>=1;b =(b<<1)%m;}return res;} vector primeNumbers; int prime[1000009]; long long isPrime(long long x) { for(int i=2;i<=sqrt(x);i++) { if(x%i == 0) { return i; } } return x; } int sieve() { for(int i=4;i<=1000006;i+=2) { prime[i] = 1; } for(int i=3;i<=sqrt(1000006);i+=2) { if(prime[i] == 0) { for(int j=i*2;j<=1000006;j+=i) { prime[j] = 1; } } } for(int i=2;i<=1000006;i++) { if(prime[i] == 0) { primeNumbers.pb(i); } } return 0; } long long int findMaxCut(long long int x) { if(x == 1) return 1; long long int ans = 0; if(x%2==0) { ans = ans + x + findMaxCut(x/2); } else { long long found = isPrime(x); ans = ans + x + findMaxCut(x/found); } return ans; } int main() { long long int x,n,ans=0; sl(n); for(int i=0;i