BZOJ1053_反素数_KEY
Posted Cptraser
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BZOJ1053_反素数_KEY相关的知识,希望对你有一定的参考价值。
初看这道题,以为是一道挺难的题目,但仔细看发现,不是只要爆搜就好了吗?
只需要对前12个素数进行爆搜即可。
一个数的因数个数=素数次数+1全部乘起来。
code:
/************************************************************** Problem: 1053 User: yekehe Language: C++ Result: Accepted Time:12 ms Memory:820 kb ****************************************************************/ #include <cstdio> #define ll long long using namespace std; int N,ans=1,cnt=1; int prime[15]={1,2,3,5,7,11,13,17,19,23,29,31,37}; void so(int x,ll tot,int yzgs,int last){ if(x==12){ if(tot>ans&&yzgs>cnt)ans=tot,cnt=yzgs; if(tot<=ans&&yzgs>=cnt)ans=tot,cnt=yzgs; return ; } int t=1; for(int i=0;i<=last;i++){ so(x+1,tot*t,yzgs*(i+1),i); t*=prime[x]; if(tot*t>N)break; } return ; } int main(){ scanf("%d",&N); so(1,1,1,20); printf("%d",ans); return 0; }
以上是关于BZOJ1053_反素数_KEY的主要内容,如果未能解决你的问题,请参考以下文章