洛谷 [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, ...
随机推荐
- 查看进程lsof
查看8000端口 lsof -i :8000 杀死进程 pkill -ns <pid>
- "Mac OS X"录屏幕视频并转成gif
第一步: 使用软件QuickTime Player录屏幕视频,创建方式选择新建屏幕录制: 选择区域录制,录好保存后,就需要转gif,需要另外一个软件. 第二步: 使用GIFBrewery软件创建gif ...
- Use-After-Free
0x00 UAF利用原理 uaf漏洞产生的主要原因是释放了一个堆块后,并没有将该指针置为NULL,这样导致该指针处于悬空的状态(这个指针可以称为恶性迷途指针),同样被释放的内存如果被恶意构造数据,就有 ...
- touch-action css属性 滚动和缩放手势
CSS 属性 touch-action 用于指定某个给定的区域是否允许用户操作,以及如何响应用户操作(比如浏览器自带的划动,缩放等) 默认情况下,平移(滚动) 和 缩放手势由浏览器专门处理.该属性用于 ...
- CentOS7写汇编并编译运行汇编代码
1.下载nasm编译器 下载地址是https://www.nasm.us/pub/nasm/releasebuilds/ wget https://www.nasm.us/pub/nasm/relea ...
- Windows10系统可以禁止的服务(按名称排序)
1.Application LayerGateway Service(Windows必须禁止的10项服务) 2.Bluetooth Handsfree Service(没有蓝牙的用户可以关闭) 3.B ...
- linux中进程亲和性绑定
什么是绑核所谓绑核,其实就是设定某个进程/线程与某个CPU核的亲和力(affinity).设定以后,Linux调度器就会让这个进程/线程只在所绑定的核上面去运行.但并不是说该进程/线程就独占这个CPU ...
- Re:从零开始的Linux之路(基础篇)
基于 Red Hat Enterprise Linux 7.5 或者 CentOS 7.4 Linux的命令一定遵循以下格式:command指令 [-options]选项 parameter1参数 ...
- mysql:破解MySQL密码的一种方法
1, 修改mysql配置文件/etc/my.cnf 12 [mysqld]skip_grant_tables 2, 重启mysql后直接用root用户登录(不用输入密码) 1 $ mysql -uro ...
- C++实现简易单向链表
#include <iostream> #include <stdlib.h> #include <stdbool.h> using namespace std; ...