#include using namespace std; void sieveOfEratosthenes(int N, int s[]) { vector prime(N+1, false); for (int i=2; i<=N; i+=2) s[i] = 2; for (int i=3; i<=N; i+=2) { if (prime[i] == false) { s[i] = i; for (int j=i; j*i<=N; j+=2) { if (prime[i*j] == false) { prime[i*j] = true; s[i*j] = i; } } } } } int generatePrimeFactors(int N) { int n,s[N+1],max=0; sieveOfEratosthenes(N, s); int curr = s[N]; int cnt = 1; while (N > 1) { N /= s[N]; if (curr == s[N]) { cnt++; continue; } if(cnt>max) { max=cnt; n=curr; } else if(cnt==max && n>curr) { max=cnt; n=curr; } curr = s[N]; cnt = 1; } return(n); } int main() { int n,i,z,p; long int s=0; cin>>n; for(i=0;i>z; p=generatePrimeFactors(z); while(z>0) { s+=z; z/=p; } } cout<