P1463 反素数
題面:https://i.cnblogs.com/EditPosts.aspx?opt=1
前置知識(shí):g(x)=(a1+1)(a2+1)...(an+1),注意:這里p1^a1*p2^a2*...*pn^an=x,且p1,p2,...,pn均為質(zhì)數(shù) 本題直接枚舉每個(gè)質(zhì)因子的指數(shù)個(gè)數(shù)即可,然后dfs搜索最大的反素?cái)?shù).Code: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<algorithm> #include<ctime> #include<map> using namespace std; long long p[20]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53}; long long n,maxn=-1,ans=-1; void solve(long long tot,long long x,long long t,long long now){if(t>maxn||(t==maxn&&tot<ans)){ans=tot;maxn=t;}long long i=tot,j=0,nt=0;while(j<now){j++;if(n/i<p[x]){break;}nt=t*(j+1);i*=p[x];if(i<=n){solve(i,x+1,nt,j);}} } int main(){scanf("%lld",&n);solve(1,1,1,30);printf("%lld",ans);return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/ukcxrtjr/p/11503992.html
總結(jié)
- 上一篇: UOJ #576. 积的第K小数
- 下一篇: P1341 无序字母对