求助
查看原帖
求助
374576
xieeix楼主2020/10/7 13:56
#include<bits/stdc++.h>
#include<algorithm>
#include<cstdio>
#include<fstream>
#include<cstring>
using namespace std;int n , m ;
int c[1001];
int v , u;
long long s[27] = {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,91,97};
void check(int sum)
{
	int ans = 1;
	for(int i = 1 ;i <= 26;i++)
		ans *= (c[i] + 1);
	if(ans > u)
		u = ans ,v = sum;
	if(ans == u)
		v = min(v , sum);
}
void dfs(int sum , int k)
{
	if(sum > m)
		return ;
	if(sum <= m && sum >= n)check(sum);
	for(int i = 1 ;i <= 26 ;i++)
	{
		c[i]++;
		dfs(sum * s[i] , i);
		c[i]--;
	}
}
int main(){
	cin >> n >> m;
	dfs(1 , 1);
	cout << u << " " << v;
	return 0;
}

2020/10/7 13:56
加载中...