神奇的反素数, 首先定义

g(x) = x的约数个数

而反素数就是对于任意的0 < j < i 有g(j) < g(i)那么就称i为反素数
那么从这个定义中可以发现的是, 反素数一定是由连续的质数相乘
即对于反素数x一定有x=2^t1*3^t2*5^t3…………..
注意一定要是连续的, 即t1, t2, t3, t4, t5……>0;
好吧说的不清楚, 给百度百科的说明

对于任何正整数x,其约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0<i<x),都有g(i)<g(x),则称x为反素数·
性质一:一个反素数的质因子必然是从2开始连续的质数.
性质二:p=2^t1*3^t2*5^t3*7^t4.....必然t1>=t2>=t3>=....

对于这个证明, 自己yy了一下(有不对的话请读者指出, 高中狗):

  • 设x的最小质因数不是2, 那么把其最小的质因数变成2得到新数x’
    易知x’一定小于x而约数个数和x相等, 矛盾 得证
  • 同理我们对于第二个性质若i < j && ti >= tj 我们又可以把ti, tj两个指数换一个顺序得到的新数一定比原数小且约数相等, 矛盾, 得证
    那么下面是一道反素数的经典例题,
    给出T(T∈[1,100]) 每组数据输入一个整数n(n∈[1,10^18])
    求小于等于n的 约数最多的 最小数;

典型的模板不多说给出代码(根据上面的性质搜索剪枝得到)

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;#define rep(i, s, t) for(int i = s; i <= t; ++i)typedef long long ll;
ll prime[30], res = 0, res_cnt, n;void dfs(ll dep, ll t, ll cnt, ll la) {if(res_cnt < cnt) res = t, res_cnt = cnt;if(t < res && res_cnt <= cnt) res = t, res_cnt = cnt;ll temp = 1;rep(i, 1, la) {temp *= prime[dep];if(n/temp < t) break;//避免乘法爆lldfs(dep+1, t*temp, cnt*(i+1), i);}
}int main() {
#ifndef ONLINE_JUDGEfreopen("data.in", "r", stdin);freopen("result.out", "w", stdout);
#endifint t = 1, _;prime[t] = 2;for(ll i = 3; i <= 0x3f3f3f && t <= 30; ++i) {bool flag = false;for(int j = 2; (ll)j*j <= i; ++j)if(i % j == 0) {flag = 1; break;}if(!flag) prime[++t] = i;}cin >> _;while(_--) {res_cnt = 0;res = 0;scanf("%lld", &n);dfs(1, 1, 1, 30);cout << res << " " << res_cnt << endl;}
}

转载于:https://www.cnblogs.com/pbvrvnq/p/8530162.html

1748. The Most Complex Number/LG的数学计划~~~持续更新ing(反素数求解)相关推荐

  1. Number With The Given Amount Of Divisors(反素数)

    Given the number n, find the smallest positive integer which has exactly n divisors. It is guarantee ...

  2. 数学建模 导航(持续更新ing)

    数学建模 导航 一.数学建模方法 1.综合评价类 2.分类与判别类 3.关联.因果与比较类 4.预测与预报类(1)单序列预测 5.预测与预报类(2)回归分析预测 6.优化与控制类 二.数学建模工具 1 ...

  3. ACM数学常用知识整理(持续更新ing)

    1.最大公约数,最小公倍数 int gcd(int x,int y) {int z=y;while(x%y!=0){z=x%y;x=y;y=z;}return z; } int lcm(int x,i ...

  4. latex数学符号(持续更新)

    公式符号 小于等于\leq ≤\leq≤ 正比于\propto ∝\propto∝ 波浪线\sim ∼\sim∼ 换行 quad空格 a\qquad b aba\qquad bab quad空格 a\ ...

  5. 数学(持续更新、整理)

    两数相加:leetcode-2 Z字形变换:leetcode-6 整数反转:leetcode-7 Pow(x, n):leetcode-50 排列序列:leetcode-60 爬楼梯:leetcode ...

  6. 复数 Complex Number 教程

    复数 Complex Number 教程

  7. C++实现complex number复数的算法(附完整源码)

    C++实现complex number复数的算法 C++实现complex number复数的算法完整源码(定义,实现,main函数测试) C++实现complex number复数的算法完整源码(定 ...

  8. 【leetcode】537. Complex Number Multiplication(Python C++)

    537. Complex Number Multiplication 题目链接 537.1 题目描述: Given two strings representing two complex numbe ...

  9. leetcode【537】Complex Number Multiplication(复数相乘)

    写在最前面:一道很常规的字符串分割的题 leetcode[537]Complex Number Multiplication Given two strings representing two co ...

最新文章

  1. 第五届蓝桥杯省赛javaB组试题解析
  2. IO多路复用之select篇
  3. DSP学习 -- Visual Studio 操作
  4. 【VMware虚拟化解决方案】双网隔离虚拟化桌面解决方案
  5. NLP --- 隐马尔可夫HMM(第一个、第二个问题解决方案)
  6. 2004-7-21/22+ DataGrid知识整理
  7. 总结——pandas/numpy处理数据中文手册速查
  8. chinapub matlab,MATLAB 5手册
  9. 一个完整的HTTP请求过程详细
  10. 【Typecho插件】SimpleAdmin后台美化插件
  11. 学计算机的要起一个群名,吸引人的学生群名字
  12. python怎么复数乘方开方_一篇小文入门 Python
  13. 学习JBPM 工作流引擎 API方法(二)
  14. 大数据时代对存储发展的要求有哪些
  15. 视频怎么调整尺寸 裁剪视频画面尺寸大小的方法
  16. 图像处理-Opencv入门(3)-图像的基本运算(1)-代数运算
  17. Matlab GUI编程技巧(一):如何使gui编的界面一运行就居中
  18. 我的2021年总结,从大专生到本科生。
  19. 一个没有演讲经验的人,怎样迅速提高演讲能力?
  20. 使用STM32测量PWM方波频率和占空比的方法

热门文章

  1. idea redis 插件_Intellij IDEA 实用插件安利
  2. 华为智慧屏鸿蒙挂安卓9,荣耀先行!华为智慧屏9月发布:搭鸿蒙系统和自研芯片...
  3. 机器人编程软件semia_机器人10大流行编程语言对比 你掌握了哪种?
  4. oracle主备不同步,主备环境下数据不一致重新部署复制
  5. linux监控任务跑满,Linux服务器带宽和CPU跑满或跑高排查
  6. 4 关卡流 进阶_赛博朋克2077:实用玩法攻略,技术流玩法攻略
  7. Ubuntu 安装 Redis (非源码Build方式)
  8. 解决Driver/library version mismatch
  9. 大数据学习笔记52:Flume Interceptors(Flume拦截器)
  10. 解决Python shell中Delete-Backspace键乱码问题