当前位置: 首页 > news >正文

【反素数】

题目

思路

  • 首先分析 x 的性质
    • 一定是 x \in [1,N] 中约数最大的
    • 一定是约数同是最大的数字中值中最小的
  • 进一步挖掘性质,紧贴枚举的做法
    • 约数最大值最小(也决定了层数、其它约束),是枚举的比较条件
    • 实现上述目的,枚举的质数种类在大小上是连续的,指数是不严格单调递减的(分支方式)
  • 分析采取的方案
    • 通过 dfs 枚举质因子数目来枚举不同的 x
    • 用约数公式判断约数个数进行比较
  • 准备枚举(深搜)
    • 比较条件:约数最大值最小
    • 深搜的层数:枚举到 9 种质数就结束
    • 分支方式:当前质因子不同的指数
    • 其它约束:值不超过 n

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;int n;
int p[9] = {2,3,5,7,11,13,17,19,23};
int min_num = INT_MAX, max_s;
void dfs(int u, int last, int num, int s)
{if(s > max_s || s == max_s && num < min_num){max_s = s;min_num = num;}if(u >= 9) return;LL mi = 1;for(int i = 1; i <= last; i++){mi *= p[u];if(num * mi > n) break;dfs(u+1, i, num * mi, s * (i+1));}
}
int main()
{cin >> n;dfs(0, 30, 1, 1);cout << min_num;return 0;
}


http://www.mrgr.cn/news/38165.html

相关文章:

  • 2024年云南省职业院校技能大赛-云计算应用
  • 一些硬件知识(二十五)
  • 这种膜为啥能随温度变透明?怎么制备的?有啥特点?
  • Synchronized和 ReentrantLock有什么区别?
  • 音视频入门基础:FLV专题(7)——Tag header简介
  • 云原生之容器编排实践-OpenEuler23.09离线安装Kubernetes与KubeSphere
  • 0基础学前端 day6 -- 搭建github pages静态网址
  • Docker官网新手入门教程:从零开始玩转容器
  • 在 commit 里使用 emoji~
  • Java 常用的一些Collection的实现类
  • ai生产力 输出内容变现新方式 AI头像生成教程和变现方式分析
  • 2024新版IDEA创建JSP项目
  • 【Linux】信号
  • AI表情包项目变现实操,适合新手小白
  • Spring Boot 进阶- Spring Boot 自定义拦截器详解
  • MYSQL-查看函数创建语句语法(五)
  • 人只活一次,活出一道光吧
  • Postgresql源码(136)syscache/relcache 缓存及失效机制
  • 2. Linux系统——文件目录管理操作
  • 3.整数二分