求助DFS WA24pts
查看原帖
求助DFS WA24pts
285617
黑影洞人楼主2022/8/15 19:16
#include<cstdio>
#include<algorithm>
#define int long long
using namespace std;
int prime[114]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
int l,r,ans,res=1e18;
void dfs(int num,int cnt,int k,int p){
	if(num>r)return;
	if(l<=num&&num<=r){
		if(ans<cnt){
			res=num;
			ans=max(ans,cnt);
		}
		return;
	}
	if(p>16)return;
	for(int i=1;i<=k;i++)dfs(num*=prime[p],cnt*(i+1),i,p+1);
}
signed main(){
	scanf("%lld%lld",&l,&r);
	dfs(1,1,40,1);
	printf("Between %lld and %lld, %lld has a maximum of %lld divisors.",l,r,res,ans);
	return 0;
}


2022/8/15 19:16
加载中...