蒜头君对一个数的因数个数产生了兴趣,他想知道在 1 到 n 的范围内,因数个数最多的数是多少。如果有多个这样的数,他想知道最小的那个。
输入格式
第一行一个整数 T,表示数据的组数。

接下来 T 行,每行一个正整数 n。

1≤T≤100,1≤n≤10e16

输出格式
一共输出 T 行,每行一个正整数表示最多因数个数的数。

样例输入

3
10
100
1000

样例输出

6
60
840

思路:

代码:

#include<bits/stdc++.h>
using namespace std;
long long t,n,Max=-0x3fffffff,ans=-0x3fffffff;//Max记录目前最大的因子的个数,ans记录因子个数最多的数的最小的那个
int prime[15]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47};//2*3*5*...*47已经大于10e16了
void dfs(int ind,int m,long long num,long long cnt){//当前枚举到了第几个质数,当前质数最多选多少个,当前的数,当前数的因数个数if(cnt>Max){//如果当前值的因数个数比Max大更新,Max和ansMax=cnt;ans=num;}else if(cnt==Max&&num<ans){//如果因子数相同但该数更小,更新ansans=num;}if(ind==15) return;//如果15个质数都枚举完了就退出for(int i=1;i<=m;i++){//对该质数的个数进行枚举num=num*prime[ind];//不断乘以该质数if(num>n) return;//如果该值大于n则退出dfs(ind+1,i,num,cnt*(i+1));//枚举下一个质数,这里第2个参数是i,是第i个因子次数>=第i+1个因子次数,减少搜索量。 }}
int main(){cin>>t;while(t--){Max=-0x3fffffff,ans=-0x3fffffff;cin>>n;dfs(0,60,1,1);//从第0个质数开始考虑,初始的质数的次数不超过60(2最多选60个),初始的数为1,初始的数的因数个数为1.cout<<ans<<endl;}
}

因数最多的数(DFS,质因数分解,剪枝)相关推荐

  1. 计蒜客 因数最多的数

    样例输入 3 10 100 1000 样例输出 6 60 840 最重要的一个公式: 例如数字6可以分解为21 * 31,所以按照公式,它的因数个数为4(1,2,3,6). 由于任何合数都可以被分解为 ...

  2. Python判断质数合数,质因数分解并得到所有因数

    Python判断质数合数,质因数分解并得到所有因数 判断质数.合数 质因数分解 得到所有正因数 完整程序 运行效果 判断质数.合数 要判断一个大于一的正整数是质数还是合数,只需判断在区间[2, √x] ...

  3. 使用线性筛进行质因数分解

    质因数分解 质因数分解的概念 一个数A=p1k1⋅p2k2⋅⋅⋅pnkn,其中pi为质数恒成立一个数A=p_1^{k_1} \cdot p_2^{k_2} \cdot \cdot \cdot p_n^ ...

  4. 质数判断及质因数分解 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 0和1不是质数 除了0,1,质数以外其他的数叫合数

    题目: 质数判断及质因数分解    质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 0和1不是质数 除了0,1,质数以外其他的数叫合数 代码部分: C++实现 #include ...

  5. 求一个数的所有因数+质因数分解【数论】

    先附上所有因数的求法: 我的做法:是今天误打误撞写出来的: http://exam.upc.edu.cn/problem.php?id=5062 然后,我上网找居然没有人写一个高效一点的,我这个做法其 ...

  6. java质因数算法_Java分解任意输入数的质因数算法的实现示例

    这篇文章主要介绍了Java实现分解任意输入数的质因数算法,涉及java数学运算相关操作技巧,需要的朋友可以参考下 本文实例讲述了Java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: ...

  7. java所有的质因数_Java实现分解任意输入数的质因数算法示例

    本文实例讲述了java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: 分解任意输入数的质因数: 质因数概念:任何一个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数, ...

  8. java质因数的分解_Java实现分解任意输入数的质因数算法示例

    本文实例讲述了Java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: 分解任意输入数的质因数: 质因数概念:任何一个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数, ...

  9. 质因数分解求给定正整数的因数个数

    正整数因数个数的快速求法 以72为例,将72进行质因数分解,72 = 2*2*2*3*3 = 2^3 * 3^2 将底数2的幂次和底数3的幂次分别加1再相乘 得到72的因数个数 = (3+1) * ( ...

最新文章

  1. 让关键词排名更稳定提升的优化技巧有哪些?
  2. 将表单请求提交到本页
  3. 使用Spring3+Quartz实现定时任务
  4. javascript中函数参数以及函数中局部变量作用域一点点理解
  5. 使用Source Monitor检测Java代码的环复杂度
  6. 3d立体相册特效html网页代码_新闻类网页正文通用抽取器
  7. win7 更改IP 脚本(自动获取和手动设置多个IP),将里面内容拷贝到记事本另存为set_win7_IP.bat
  8. 2018 AI趋势:AI芯片更丰富,用机器学习的企业翻倍 | 德勤报告
  9. 数据结构一些自己没搞懂的点
  10. c语言早期标准没有数据转换,标准C语言2
  11. RoR vs. Java
  12. vps部署ssl,让域名可以https访问的最简单的办法 ssl无法ie访问 https在ie访问报错的处理办法
  13. Web网页如何实现QQ好友,QQ空间,微博分享
  14. #Windows server 2019将辅助域控升级为主域控
  15. android扫码二维码识别二维码
  16. 计算机管理中打开移动硬盘磁盘必须格式化,最佳解决方案:无法打开移动硬盘分区,并且未格式化解决方案。...
  17. 计算机视觉中的MAP的理解(mean average precision)
  18. acme.sh使用阿里云DNS申请Let’s Encrypt的https证书
  19. 1 Linux Kali忘记用户名教程
  20. iTOP3A5000_7A2000开发板龙芯全国产处理器LoongArch架构核心主板

热门文章

  1. 44道javaScript变态题(上)
  2. 关于随机森林randomforest对结果进行分类的原则的个人理解
  3. 微信小程序----全局状态管理 (便于全局埋点等操作)
  4. 在emacs中使用百度翻译
  5. 怎么看自己的操作系统?
  6. SP许可证延期需要的东西
  7. 2023第5届中国(济南)国际福祉及残疾人用品展览会开启招商
  8. Win10锁屏之后设置自动关闭屏幕的时间
  9. 异步赠书:12月《Go Web编程》领航
  10. php zen kaku代表什么,Convert kana one from another (zen-kaku, han-kaku and more) - PHP 7 中文文档...