算术基本定理的应用

算术基本定理:

一个正整数 \(N\) 能唯一分解成如下形式

\[N=p_1 ^ {c_1}p_2^{c_2}\cdots P_m ^ {c_m}
\]

其中 \(c_i\) 都是正整数, \(P_i\)都是质数

推论:

\(N\) 的正约数集合可以写成如下形式:

\[ \{p_1^{b_1}P_2^{b_2}\cdots P_m^{b_m}\}$$, 其中$0\leq b_i \leq c_i$

$N$ 的正约数个数可表示为:
$$ (c_1 + 1) * (c_2 + 1) * \cdots *(c_m + 1) = \prod_{i=1}^m\quad(c_i + 1)\]

\(N\) 的所有正约数的和可表示为:

\[(1 + p_1 + p_1 ^2 + \cdots p_1 ^ {c_1})* \cdots *(1 + p_m + p_m ^2 + \cdots + p_m ^{c_m}) = \prod_{i =1}^1(\sum_{j = 1}^{c_1}(p_j)^i)
\]

首先,对于本题来说,反素数一定是$ 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] 反素数的更多相关文章

  1. 洛谷P1463 反素数

    经典题了,很难想到这TM是搜索...... 题意:求[1, n]中约数最多的数中最小的. 解:我们有约数个数定理. 所以考虑通过枚举每个质因数个数来直接计算出约数个数. 然后就可以搜索了. 注意:若p ...

  2. 洛谷P1436 棋盘分割

    洛谷题目链接 动态规划: 我们设状态$f[i][j][o][p][k]$表示一个矩形,左上角顶点坐标为$(i,j)$,右下角顶点坐标为$(o,p)$时分割了$k$次,也就是说现在是$k+1$块 我们考 ...

  3. 洛谷 P1436 棋盘分割 解题报告

    P1436 棋盘分割 题目描述 将一个8*8的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的两部分中的任意一块继续如此分割,这样割了(n-1)次后,连同最后剩下的矩形棋盘共 ...

  4. 【洛谷P1835】素数密度

    题目描述: 给定区间[L,R](L≤R≤2147483647,R-L≤1000000),请计算区间中素数的个数. 思路: 暴力: 蒟蒻:哦?绿题?这么水?(便打出下面代码) 这绝对是最容易想到的!但, ...

  5. 【洛谷P1463】反素数

    题目大意:给定 \(N < 2e9\),求不超过 N 的最大反素数. 题解: 引理1:不超过 2e9 的数的质因子分解中,最多有 10 个不同的质因子,且各个质因子的指数和不超过30. 引理2: ...

  6. 【题解】洛谷P1463 [POI2002][HAOI2007] 反素数(约数个数公式+搜索)

    洛谷P1463:https://www.luogu.org/problemnew/show/P1463 思路 约数个数公式  ai为质因数分解的质数的指数 定理: 设m=2a1*3a2*...*pak ...

  7. 洛谷 P1463 [SDOI2005]反素数ant

    P1463 [SDOI2005]反素数ant 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i< ...

  8. 反素数 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 ...

  9. 洛谷 P1463 [POI2002][HAOI2007]反素数

    题目链接 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数1, ...

随机推荐

  1. Java生成固定长度的随机字符串(以大小写字母和数字)

    package org.jimmy.autosearch2019.test; import java.util.ArrayList; import java.util.Random; /** * @a ...

  2. 解决IllegalBlockSizeException:last block incomplete in decryption异常

    解决IllegalBlockSizeException:last block incomplete in decryption异常分类: webkit android最近做个加解密的实现,虽然实现了, ...

  3. C06 变量和存储类型

    目录 全局变量 局部变量 存储类型 全局变量和局部变量 变量的作用域 作用域:某些事物起作用或有效的区域. 变量的使用范围称为变量的作用域. 变量的作用域决定了变量的可操作性和有效性. C语言变量的作 ...

  4. Spring框架bean的注解管理方法之一 使用注解生成对象

    首先在原有的jar包: 需Spring压缩包中的四个核心JAR包 beans .context.core 和expression 下载地址: https://pan.baidu.com/s/1qXLH ...

  5. ios之UISplitViewController

    iPad的屏幕比iPhone大,所以在界面上,iPad比iPhone多一个UISplitViewController,用来实现iPad在横屏时,分两栏显示所需要的界面,可以一边是目录一边是具体的内容. ...

  6. 浅谈 Swift 2 中的 Objective-C 指针

    浅谈 Swift 2 中的 Objective-C 指针 2015-09-07  499 文章目录 1. 在 Swift 中读 C 指针 2. 在 Swift 中创建 C 指针 3. 总结 作者:Ja ...

  7. jQuery实现滚动条下拉时无限加载

    var lastId=0;//记录每一次加载时的最后一条记录id,跟您的排序方式有关. var isloading = false; $(window).bind("scroll" ...

  8. 【NOIP2017提高A组冲刺11.8】购物

    这个范围对DP不友好,和CF的一道C题非常像,贪心+后悔. 先使用k个优惠券购买k个q最小的(钱不购买则退出),同时把这k个p[i]-q[i]放入小根堆,然后将剩下的n-k个按p升序排序,记小根堆堆顶 ...

  9. ubuntu下如何对接斗鱼直播

    参考教程:https://www.cnblogs.com/liuxuzzz/p/5315998.html 大神写得挺细的,这里都不想再多说了! 为啥要做这个呢?可能真的只是为了好玩吧!!有兴趣直播的孩 ...

  10. linux 04 CentOS安装

    今天在Vmware上安装了CentOS6.5系统,下午首先把书上的安装过程看了一遍,实际进行操作时有些步骤不一样,经过查资料成功安装,说一下收获.选择自定义安装虚拟机,首先创建空白虚拟机,稍后编辑虚拟 ...