Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
30437 LYLAKIOIAKIOI 【S】T1 C++ 通过 100 133 MS 364 KB 788 2024-07-19 14:24:56

Tests(10/10):


#include<bits/stdc++.h> using namespace std; #define ll long long #define r register ll ans=0; ll x,k,m; int ct=0; bool ok=0; ll p[1200000]; ll lim=0; void dfs(ll num,ll cnt){ if(ok) return ; if(cnt==k||num==1){ ans+=num;ct++; if(ct==m) ok=1; return ; } for(int i=1;i<=lim;i++){ if(p[i]>num) break; if(num%p[i]==0) dfs(p[i],cnt+1); if(ok) break; } } void slv(){ cin>>x>>k>>m; if(k>m){ cout<<m;return ; } int limi=sqrtl(x); for(ll i=1;i*i<=x;i++){ if(i*i==x&&x%i==0) continue; if(x%i==0) p[++lim]=i; } for(ll i=limi;i>=1;i--){ if(x%i==0) p[++lim]=x/i; } dfs(x,0); cout<<ans; } int main(){ slv(); return 0; }


测评信息: