洛谷 [P1436] 反素数
算术基本定理的应用
算术基本定理:
一个正整数 \(N\) 能唯一分解成如下形式
\]
其中 \(c_i\) 都是正整数, \(P_i\)都是质数
推论:
\(N\) 的正约数集合可以写成如下形式:
$N$ 的正约数个数可表示为:
$$ (c_1 + 1) * (c_2 + 1) * \cdots *(c_m + 1) = \prod_{i=1}^m\quad(c_i + 1)\]
\(N\) 的所有正约数的和可表示为:
\]
首先,对于本题来说,反素数一定是$ 1 \sim N $中约数个数最多的数中最小的一个
其次\(1 \sim N\)的的所有数中,拥有的不相同的质因子不会超过 10 个
每个质因子的幂次不会超过 30
最后我们发现,答案 x 的质因子是连续的若干个质数,且质数单调递减,
如果不是这样的话,我们一定可以通过交换质因子次数的方法,得到一个约数一样,但更小的答案
注意:本题要开 long long
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#define ll long long
using namespace std;
ll n, ans, cnt, prime[15] = {0, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31};
void dfs(int k, ll num, ll c, int cur) {
	//cout<<k<<endl;
	if(k == 11 || !cur) {
		if(cnt < c) {ans = num;cnt = c;}
		if(cnt == c) ans = min(ans, num);
		return;
	}
	ll ttt = 1;
	for(int i = 0 ; i <= cur ; i++) {
		if(i) ttt *= prime[k];
		if(num * ttt > n) return;
		dfs(k + 1, num * ttt, c * (i + 1), i);
	}
}
int main() {
	cin>>n;
	if(n == 1) {printf("%lld\n", n);return 0;}
	int k = 0;
	for( ; (1ll<<k) < n && k <= 30; k++) ;
	dfs(1, 1, 1, k);
	cout<<ans<<endl;
	return 0;
}
洛谷 [P1436] 反素数的更多相关文章
- 洛谷P1463 反素数
		经典题了,很难想到这TM是搜索...... 题意:求[1, n]中约数最多的数中最小的. 解:我们有约数个数定理. 所以考虑通过枚举每个质因数个数来直接计算出约数个数. 然后就可以搜索了. 注意:若p ... 
- 洛谷P1436 棋盘分割
		洛谷题目链接 动态规划: 我们设状态$f[i][j][o][p][k]$表示一个矩形,左上角顶点坐标为$(i,j)$,右下角顶点坐标为$(o,p)$时分割了$k$次,也就是说现在是$k+1$块 我们考 ... 
- 洛谷 P1436 棋盘分割 解题报告
		P1436 棋盘分割 题目描述 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的两部分中的任意一块继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共 ... 
- 【洛谷P1835】素数密度
		题目描述: 给定区间[L,R](L≤R≤2147483647,R-L≤1000000),请计算区间中素数的个数. 思路: 暴力: 蒟蒻:哦?绿题?这么水?(便打出下面代码) 这绝对是最容易想到的!但, ... 
- 【洛谷P1463】反素数
		题目大意:给定 \(N < 2e9\),求不超过 N 的最大反素数. 题解: 引理1:不超过 2e9 的数的质因子分解中,最多有 10 个不同的质因子,且各个质因子的指数和不超过30. 引理2: ... 
- 【题解】洛谷P1463 [POI2002][HAOI2007] 反素数(约数个数公式+搜索)
		洛谷P1463:https://www.luogu.org/problemnew/show/P1463 思路 约数个数公式 ai为质因数分解的质数的指数 定理: 设m=2a1*3a2*...*pak ... 
- 洛谷 P1463 [SDOI2005]反素数ant
		P1463 [SDOI2005]反素数ant 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i< ... 
- 反素数 Antiprime(信息学奥赛一本通 1625)(洛谷 1463)
		题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1,2,4,6 ... 
- 洛谷 P1463 [POI2002][HAOI2007]反素数
		题目链接 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1, ... 
随机推荐
- Java IO流之字符缓冲流
			字符流: 1.加入字符缓存流,增强读取功能(readLine) 2.更高效的读取数据 BufferedReader 从字符输入流读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取. FileRe ... 
- C#背景图片自适应
			1.选中窗体修改属性 2.在load添加代码 private void Form1_Load(object sender, EventArgs e) { this.BackgroundImageLay ... 
- Java调用存储过程出现Bug,sql语法错误
			因为SQL Server运行没有正常,检查了传入参数的值,发现问题,然后传入默认参数,解决了问题. 
- a标签目标链接问题
			1.先确定开始文件和目标文件,例如从css.html开始到body.html 2.确定文件寻找路径,因为css.html的父目录是css,而body.html在body目录下,所以需要先退到上一目录h ... 
- ios 之CGRectMake
			首先要弄懂几个基本的概念. 一)三个结构体:CGPoint.CGSize.CGRect 1. CGPoint [plain] view plaincopy /* Points. */ struc ... 
- document节点的一些个性属性
			<ol> <li>document.head:返回文档的< head>节点:</li> <li>document.body:返回文档的< ... 
- Java 的访问权限
			public>protected>默认(包访问权限)>private,因为protected除了可以被同一包访问,还可以被包外的子类所访问 
- GIMP中的新建Layer与更改Layer大小
			这边可以直接New Layer,新建一个Layer,还可以New from Visible,第二种是将当前的状态下图像复制出来. 改变Layer的大小,一般的方法两种: Crop to Selecti ... 
- (转) 苹果所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程(精)
			原文地址:http://blog.csdn.net/holydancer/article/details/9219333 概述: 苹果的证书繁锁复杂,制作管理相当麻烦,今天决定重置一个游戏项目中的所有 ... 
- PAT Basic 1071
			1071 小赌怡情 常言道“小赌怡情”.这是一个很简单的小游戏:首先由计算机给出第一个整数:然后玩家下注赌第二个整数将会比第一个数大还是小:玩家下注 t 个筹码后,计算机给出第二个数.若玩家猜对了,则 ... 
