萌新刚学OI求助
查看原帖
萌新刚学OI求助
1052984
TimeLimitEnough楼主2023/8/7 14:57

in:100000 out:90720 ans:83160 调了一天,调吐了QWQ

#include<iostream>
#define int long long
#define mp make_pair
using namespace std;
int prime[50]={0,2,3,5,7,9,11,13,17,19,23,29,31};
int n,ans=0;
pair<int,int> emirp;
void dfs(int now,int cnt,int num,int last){
	if(cnt>emirp.second || (cnt==emirp.second && now<emirp.first)) emirp=mp(now,cnt);
	if(num>=13) return;
	for(int i=1;i<=last;++i){
		if(now*prime[num]>n) return;
		now=now*prime[num];
		dfs(now,cnt*(i+1),num+1,i);
	}
}
signed main(){
	cin>>n;
	dfs(1,1,1,30);
	cout<<emirp.first<<' '<<emirp.second;
}
2023/8/7 14:57
加载中...