BZOJ 1053 [HAOI2007]反素数ant
2018-10-31 16:21
471 查看
1053: [HAOI2007]反素数ant
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4604 Solved: 2780
[Submit][Status][Discuss]
Description
对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。如果某个正整数x满足:g(x)>g(i) 0<i<x ,则称x为反质数。例如,整数1,2,4,6等都是反质数。现在给定一个数N,你能求出不超过N的最大的反质数么 ?
Input
一个数N(1<=N<=2,000,000,000)。
Output
不超过N的最大的反质数。
Sample Input
1000Sample Output
840HINT
题解:先固定因数的数量,对于一个数,他的质因子的指数的数量一定不增 (假设出现后面的质因子的数量多于前面的,则可以交换两者的数量而使得这个数变小),这时候我们只要暴力搜索即可; 参考代码:/************************************************************** Problem: 1053 User: SongHL Language: C++ Result: Accepted Time:20 ms Memory:1288 kb ****************************************************************/ #include<bits/stdc++.h> using namespace std; typedef long long ll; ll N,temp,ans; ll Prime[20]={2,3,5,7,11, 13,17,19,23,29, 31,37,41,43,47, 53,59,61,67,71}; void dfs(int pos,ll y,int len,ll d) { if(d>temp || d==temp&&ans>y) ans=y,temp=d; if(pos>=20) return ; for(int i=0;i<=len&&y<=N;++i,y*=Prime[pos]) dfs(pos+1,y,i,d*(i+1)); } int main() { scanf("%lld",&N); temp=0; dfs(0,1,10000,1); printf("%lld\n",ans); return 0; }
相关文章推荐
- BZOJ 1053 [HAOI2007]反素数ant
- 【BZOJ】1053: [HAOI2007]反素数ant
- BZOJ 1053 [HAOI2007]反素数ant
- BZOJ1053 [HAOI2007] 反素数ant
- bzoj 1053: [HAOI2007]反素数ant (数论)
- [BZOJ 1053] [HAOI 2007] 反素数ant
- bzoj1053: [HAOI2007]反素数ant
- 【bzoj1053】[HAOI2007]反素数ant(数论)
- BZOJ 1053: [HAOI2007]反素数ant
- 【BZOJ 1053】[HAOI2007]反素数ant
- 【结论+暴搜】BZOJ1053 [HAOI2007]反素数ant
- 1053: [HAOI2007]反素数ant - BZOJ
- Bzoj1053 [HAOI2007]反素数ant
- bzoj 1053: [HAOI2007]反素数ant && 51nod-1060:最复杂的数(反素数与因数个数计算)
- BZOJ 1053 [HAOI2007]反素数ant(约数个数)
- BZOJ——T 1053: [HAOI2007]反素数ant
- 【BZOJ1053】[HAOI2007]反素数ant 暴力
- 【HAOI 2007】【BZOJ 1053】反素数ant
- BZOJ 1053: [HAOI2007]反素数ant
- [bzoj1053][HAOI2007]反素数ant