BZOJ1053_反素數_KEY
阿新 • • 發佈:2017-10-20
def ret prim style sca == 一個 .com mem
題目傳送門
初看這道題,以為是一道挺難的題目,但仔細看發現,不是只要爆搜就好了嗎?
只需要對前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