首页 > 其他 > 详细

[POI2002][HAOI2007]反素数 数论 搜索 好题

时间:2018-11-01 18:51:40      阅读:153      评论:0      收藏:0      [点我收藏+]

Code:

#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
int prime[]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,51,53};
ll n, maxn;
int cur;
void dfs(int dep,ll m,int t,int p){  //上一个指数
	if(dep==12){
		if(t>=cur){
			if(t>cur) maxn=m, cur=t; 
			else if(m<maxn) maxn=m;
		}
		return;
	}
	ll cnt=1;
	for(int i=0;i<=p;++i){
		dfs(dep+1,m*cnt,t*(i+1),i);
		cnt*=prime[dep];
		if(m*cnt>n) break;
	}
}
int main(){
	//freopen("input.in","r",stdin);
	scanf("%lld",&n);
	dfs(1,1,1,30);
	printf("%lld",maxn);
	return 0;
}

  

[POI2002][HAOI2007]反素数 数论 搜索 好题

原文:https://www.cnblogs.com/guangheli/p/9891053.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!