社区讨论

一个问题

学术版参与者 7已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@mhz49url
此快照首次捕获于
2025/11/15 01:13
3 个月前
此快照最后确认于
2025/11/16 13:48
3 个月前
查看原帖
给定一个正整数 nn,求1n1\sim n中因子最多的数的因子数量。
这个问题目前最快的解法大约可以算到 nn 为多少。
目前蒟蒻只写出了如下代码:
CPP
int n;
int ans;
int a[20]={0,2,3,5,7,11,13,17,19,23,29/*10*/,31,37,41,43,47,53,59,61,67};
void dfs(int now,int num,int res){
	if(now>15) return ans=max(ans,res),void();
	int cnt=1,k=a[now];
	while(1){
		if(num*k<=n) dfs(now+1,num*k,res*(cnt+1));
		else{
			dfs(16,num,res);
			break;
		}
		k*=a[now];
		cnt++;
	}
}
signed main(){
	n=read();
	dfs(1,1,1);
	write(ans);
    return 0;
}
有没有更快的方法。

回复

8 条回复,欢迎继续交流。

正在加载回复...