#include #include #include using namespace std; int N; bool ex[1<<17]; pairmn[1<<17]; main() { cin>>N; for(int i=1;i<=100000;i++)mn[i].first=1e9; long ans=0; for(int i=0;i>A; if(ex[A])ans+=A; else ex[A]=true; } for(int g=100000;g>=1;g--) { int prv=-1,prv2=-1; for(int k=g;k<=100000;k+=g)if(ex[k]) { if(prv!=-1) { if(prv2==-1)prv2=k; mn[k]=min(mn[k],make_pair(prv/g,g)); } else prv=k; } if(prv!=-1&&prv2!=-1)mn[prv]=min(mn[prv],make_pair(prv2/g,g)); } vector > >E; for(int i=1;i<=100000;i++)if(ex[i]) { E.push_back(make_pair((long)i*mn[i].first,make_pair(i,mn[i].first*mn[i].second))); } sort(E.begin(),E.end()); atcoder::dsu uf(100001); for(pair >e:E) { if(!uf.same(e.second.first,e.second.second)) { uf.merge(e.second.first,e.second.second); ans+=e.first; } } cout<