Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
30415 | LYLAKIOIAKIOI | 【S】T1 | C++ | 运行超时 | 80 | 1992 MS | 131320 KB | 670 | 2024-07-19 14:05:29 |
#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; inline void dfs(ll num,int cnt){ if(ok) return ; if(cnt==k||num==1){ ans+=num;ct++; if(ct==m) ok=1; return ; } int limi=sqrtl(num); for(r ll i=1;i*i<=num;i++){ if(i*i==num&&num%i==0) continue; if(num%i==0) dfs(i,cnt+1); if(ok) break; } for(r int i=limi;i>=1;i--){ if(num%i==0) dfs(num/i,cnt+1); if(ok) break; } } void slv(){ cin>>x>>k>>m; dfs(x,0); cout<<ans; } int main(){ slv(); return 0; }