【BZOJ 1053】反素数【素数基本知识】
题意:
对于任何正整数 x ,其约数的个数记为 g(x)。如果某个正整数 x 满足:对于任意的 0 < i < x,都有g(x) > g(i),那么x为反质数。例如整数 1,2,4,6等都是反质数。先给定一个数 N,求出不超过 N 的最大的反质数。
思路:
首先需要考虑到几个性质,前10个质因子的乘积大于1e9,并且唯一分解后,所有质数的指数之和小于30,而且对于反素数而言,一定不存在一个比它小的数约数个数比它多或者一样多。
而且约数个数 = (1+c1)(1+c2)(1+c3)...(1+cm),ci 为第 i 个质因子的指数。由此我们可以发现,反素数唯一分解之后,一定只包含前10个质数,因为如果包含了更大的质数的话,都可以由前面较小的质数替换掉。而且可以发现将质数从小到大进行排列,他们的指数一定是递减的。因为如果出现了类似 (2^5)*(3^4)*(5^7) 这样的唯一分解,则可以换成(2^7)*(3^5)*(5^4),约数个数不变,但是值却更小了,因此指数一定是递减的。由此此题就变成了一个搜索问题。
代码:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#define rep(i,a,b) for(int i = a; i <= b; i++)
using namespace std;
typedef long long ll;int n,cnt[20] ,prime[20] = {0,2,3,5,7,11,13,17,19,23,29},ans,ant;void dfs(int id,ll now){if(id == 11){int tp = 1;rep(i,1,10) tp = tp*(cnt[i]+1);if(tp > ant) ant = tp, ans = now;else if(tp == ant && now < ans) ans = now;return;}cnt[id] = 0; dfs(id+1,now);rep(i,1,30){now = now*prime[id];if(now > n) break;cnt[id] = i; dfs(id+1,now);}
}int main()
{scanf("%d",&n);dfs(1,1);printf("%d\n",ans);return 0;
}
【BZOJ 1053】反素数【素数基本知识】相关推荐
- 输出100-200之间所有的素数(素数:只能被1和自己本身整除的数)
输出100-200之间所有的素数 素数:只能被1和自己本身整除的数 <script type="text/javascript">// 1. 输出100-200之间所有 ...
- BZOJ 1053 [HAOI2007]反素数ant
53: [HAOI2007]反素数ant Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0< ...
- bzoj 1053: [HAOI2007]反素数ant 51nod-1060:最复杂的数(反素数与因数个数计算)
问题概述:把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数. 例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6.如果有多个数复杂度相等, ...
- BZOJ 3085: 反质数加强版SAPGAP (反素数搜索)
题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3085 题意:求n(<=10^100)之内最大的反素数. 思路: 优化2: i ...
- HDU 4548 美素数 素数题解
本题就是能够直接打表的,推断能否够打表也须要技巧的: 1 推断最大的数值为1000000.百万下面的数打表都是能够的 2 能够线性预处理好.使用素数筛子法是能够接近线性预处理的. 故此能够打表了. 须 ...
- 筛法求素数 素数打表
c++ #include<cstdio> #include<cstring> #include<cmath>//素数打表 ,时间复杂度:O(nlog n) char ...
- c语言mn间有多少素数,素数表达式p=2a+1 (a ≠ 2mn+m+n)由此出发看哥猜、挛猜比较清晰...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 zzzvipsinacom的贴子:偶数2N+4至少可以表示为N/(2Sqr(2N+1))个素数对之和,其贡献在于:将模糊的哥猜.挛猜等问题,推演.变换成为 ...
- c语言三胞胎素数,素数、孪生素数、三胞胎素数、四胞胎素数分布规律:近似均匀分布...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本人这种观点很少有人认同,因为传统上认为素数越来越稀疏,而我且认为素数是近似平均分布,与传统观念背道而驰.很少有人相信,甚至有的专家对此评价为" ...
- 如何判断一个正整数是否是素数素数(Prime Number),又称质数,一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数;
def prime(x):''':type x: int'''# 请在此添加代码,实现判断一个数是否是素数# ********** Begin *********## n1=str(float(x)) ...
- IOS安全、逆向、反编译1-越狱知识讲解
之前开发了一个对安全性要求比较高的APP,所以对安全.逆向和反编译有了一些认识,最近有时间就想系统的把这些知识做一个整理.今天就开始把我的学习过程记录下来. iOS越狱环境搭建 在学习iOS越狱之前, ...
最新文章
- CCNA(Stand-ALONE)Lab 12-Static Routes
- 输入参数_MyBatis中的输入/输出参数
- Udacity并行计算课程笔记-The GPU Hardware and Parallel Communication Patterns
- 闪灯什么意思_车灯闪1下、2下、3下各代表什么意思?关键时刻可以保命
- 视觉智能产品发布 阿里云这项世界第一的技术现在人人可用
- 利用modelarts和物体检测方式识别验证码
- Sql Server 行转列学习 根据学生表、课程表、学生成绩表统计每个学生的各科成绩和他的总成绩、平均成绩...
- I2S,PCM,IOM-2,I2C,SPI,UART,GPIO
- 容器(Context)使用之支付系统
- 为什么时间是60进制的啊? ? ?
- java宿舍管理系统主要功能_Java学生宿舍管理系统主要内容及特点
- php doss_ddos PHP版
- 宝宝树小时光品牌升级:让宝宝从小爱上阅读
- 过程能力指数Cp与Cpk计算公式
- php html ubb,php UBB 解析实现代码
- 【土旦】在vue filters中 优雅的使用对象的key、value来替换 if switch多重判断简化流程...
- 使用AI提取文字路径
- org.apache.thrift.transport.TTransportException: SASL authentication not complete
- 设计师需要的知识体系
- 通过JS解析手机浏览器UA标志中的各种设备信息
热门文章
- OCS:运营商制胜3G的关键
- java中utilities类_Java SwingUtilities类
- mysql 接收中文字符,MYSQL匹配中文字符
- 学生用计算机怎么乘跟跟号号,3根号键的啊函数计算器价格多少,它与普通计 – 手机爱问...
- 在python中使用最小二乘法画出拟合曲线_Python基于最小二乘法实现曲线拟合示例...
- 高斯混合模型聚类_高斯混合模型的解释及Python实现
- php编写程序计算积分_PHP论坛实现积分系统的思路代码详解
- oracle分区表 mysql_Oracle分区表的使用和管理
- 与原子操作相关的 volatile 和 sig_atmotic_t
- 双向绑定 当obj的值修改时_Vue3为什么选择Proxy做双向绑定?