#include using namespace std; typedef long long ll; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b par,size,edge; void init(int n_){ n=n_; par.assign(n,-1); size.assign(n,1); edge.assign(n,0); for(int i=0;i yaku[MAX]; int mi[MAX]; ll gcd(ll a,ll b){ if(b==0) return a; return gcd(b,a%b); } int main(){ std::ifstream in("text.txt"); std::cin.rdbuf(in.rdbuf()); cin.tie(0); ios::sync_with_stdio(false); int N;cin>>N; ll ans=0; int M=100000; vector deta(M+1); for(int i=0;i>x; if(deta[x]) ans+=x; deta[x]=true; } for(int i=1;i<=M;i++){ mi[i]=INF; for(int j=i;j<=M;j+=i){ if(deta[j]) chmin(mi[i],j); yaku[j].push_back(i); } } UF uf;uf.init(M+1); vector,ll>> E; for(int i=1;i<=M;i++){ if(!deta[i]) continue; for(int j:yaku[i]){ if(mi[j]!=INF) E.push_back(mp(mp(i,mi[j]),(ll)(i)*mi[j]/gcd(i,mi[j]))); } } sort(all(E),[](auto a,auto b){ return a.se