伯特兰-切比雪夫定理

内容

对于一个整数nnn,且n>3n>3n>3,则至少存在一个素数ppp,且这个素数符合n<p<2n−2n<p<2n-2n<p<2n−2。

另一种说法:对于一个任意大于111的整数nnn,至少存在一个素数ppp,符合n<p<2nn<p<2nn<p<2n。

例题 P5535 【XR-3】小道消息

题目传送门

思路

考虑当这个人为素数时,他会告诉谁?

因为一个素数ppp能够保证互质的一个区间为[2,2p−1][2, 2p-1][2,2p−1],因此,需要对其分类讨论。

  • 考虑n范围内有没有存在其倍数,如果有那还得多一天告诉(如果有多个倍数的话,考虑到之前转达消息的时候也会转达到林外一个素数,所以在第二天的时候都会被告诉)
  • 如果没有其倍数的话,那么显然一天就转达完成了(因为剩下的数字都是互质的)

考虑这个人不是个素数,他会告诉谁?由题意可得这个数字只能告诉范围内的素数,而剩下的素数又会和上面的情况相同(除了现在的素数是多个,也就是说就算有存在素数的倍数也会被转达消息)

因此,判断下这个数是不是素数,再判断下范围内还有没有其倍数就可以了。

代码

c++

一种可行的c++代码实现。

#include <bits/stdc++.h>
using ll = long long;inline ll mul(ll a, ll b, ll p) {a = (a % p + p) % p;b = (b % p + p) % p;ll d = static_cast<long double>(a) * b / p;d = a * b - d * p;if (d >= p)d -= p;if (d < 0)d += p;return d;
}
inline ll pow(ll a, ll i, ll p) {ll res = 1;while (i) {if (i & 1)res = mul(res, a, p);a = mul(a, a, p);i >>= 1;}return res;
}
constexpr int A[] = {2, 3, 5, 7, 11, 13, 17, 23};
inline bool isprime(ll n) {if (n == 2) return true;if (n < 2 || (n & 1) == 0)return false;ll d = n - 1, s = 0;while (d % 2 == 0) {d /= 2;s ++;}for (auto a : A) {if (n == a) {return true;}ll x = pow(a, d, n);if (x == 1 || x == n - 1) continue;bool ok = false;for (int j = 1; j < s; ++ j) {x = mul(x, x, n);if (x == n - 1) {ok = true;break;}}if (!ok) {return false;}} return true;
}int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);ll n, k;std::cin >> n >> k;if (isprime(k + 1) && (k << 1) >= n) {std::cout << 1;} else {std::cout << 2;}return 0;
}

python

一种可行的python代码实现。

def power(a : int, i : int, p : int) -> int:res = 1while i > 0:if i & 1:res = res * a % pa = a * a % pi >>= 1return resA = [2, 3, 5, 7, 11, 13, 17, 21]def isprime(n : int) -> bool:if n == 2:return Trueif n < 2 or n % 2 == 0:return Falsed, s = n - 1, 0while (d & 1) == 0:d >>= 1s += 1for a in A:if n == a:return Truex = power(a, d, n)if x == 1 or x == n - 1:continuej = 1ok = Falsewhile j < s:j += 1x = x * x % nif x == n - 1:ok = Truebreakif not ok:return Falsereturn Trueif __name__ == "__main__":n, k = map(int, input().split())if (isprime(k + 1) and k * 2 >= n):print(1)else:print(2)

【日志】伯特兰-切比雪夫定理的小应用相关推荐

  1. P5535 【XR-3】小道消息(伯特兰-切比雪夫定理)

    题意: 有 n 个人,其中第 i 个人的衣服上有一个数 i+1.小 X 发现了一个规律:当一个衣服上的数为 i 的人在某一天知道了一条信息,他会在第二天把这条信息告诉衣服上的数为 j 的人,其中 gc ...

  2. 伯特兰-切比雪夫定理(洛谷P5535 【XR-3】小道消息)

    题目链接 伯特兰-切比雪夫定理说明:若整数n > 3,则至少存在一个质数p,符合n < p < 2n − 2.另一个稍弱说法是:对于所有大于1的整数n,至少存在一个质数p,符合n & ...

  3. 粗略估计哥德巴赫猜想的成立(伯特兰-切比雪夫定理、质数密度定理)

    对于任意数N,是质数的概率粗略的等于1/ln(N),小于的质数个数粗略的等于N/ln(N). 我们可以用这个,来粗略的估计哥德巴赫猜想的成立. 对于偶数O,要求: O/2恰好是质数.这种情况不用再说明 ...

  4. Codeforces Global Round 4-D. Prime Graph(伯特兰-切比雪夫定理)

    题目:Codeforces Global Round 4-D. Prime Graph 题意:给出n(顶点的个数),要求所得图满足: 1.无平行边和自环 2.边的总数是个质数 3.每个点的度(也就是点 ...

  5. Codeforces Global Round 4 - 1178D. Prime Graph(构造+切比雪夫定理)

    题目链接:https://codeforces.com/contest/1178/problem/D 题意:给出  个点,要求构成一个简单图,使得边的总数是素数,并且每个点的度数也是素数. 思路:如果 ...

  6. 【HDU - 5873】Football Games(兰道定理,知识点总结)

    题干: A mysterious country will hold a football world championships---Abnormal Cup, attracting footbal ...

  7. 伯特兰·阿瑟·威廉·罗素

     伯特兰·阿瑟·威廉·罗素伯特兰·阿瑟·威廉·罗素(Bertrand Arthur William Russell,1872年5月18日-1970年2月2日)是二十世纪最有影响力的哲学家.数学家和逻辑 ...

  8. 兰道定理 HDU-5873

    这个题网上的大多数题解都说是思维题 其实可以用兰道定理解决 首先来说明一下兰道定理 兰道定理又称竞赛图定理,是一个定义在有向图上的概念,顾名思义,它可以想象成n个人两两对决,赢得向输的连边,其实就是给 ...

  9. [竞赛图判定定理]兰道定理(Landau's Theorem)介绍及其一种证明

    前言 竞赛图(tournament)是一个定义在有向图上的概念,顾名思义,它可以想象成nn个人两两对决,赢得向输的连边,其实就是给一副完全图的无向边定了方向. 竞赛图有很多十分优美的性质,比如说在之前 ...

最新文章

  1. 2016.1.20 dubbo启动之后机器ip有问题
  2. android 壁纸 裁剪,Android图片裁剪之自由裁剪
  3. python详细安装教程视频-如何安装Python运行环境Anaconda?(视频教程)
  4. powerdesigner 生成数据库脚本
  5. (三): 十六进制转化为rgb
  6. R语言与Shapiro正态性检验
  7. 正确使用 Volatile 变量
  8. python经典一百道习题(转自奶酪博客)
  9. windows中运行qt5构建的程序提示 无法启动此程序,因为计算机中丢失qt5Cored.dll 解决方法
  10. mysql 获取操作系统信息_php获取服务器操作系统相关信息的方法
  11. python elementtree 命名空间_用Python中的命名空间通过‘ElementTree’解析XML
  12. Android的ListView长按监听器
  13. table height 100%问题
  14. Git创建本地分支并关联远程分支(一)
  15. 下载我的CSDN资源
  16. 西门子200PLC控制台达伺服电机正反转,步科触摸屏,模拟量控制
  17. 胶原蛋白市场爆发,德国vikki如何在市场异军突起?
  18. 【华为云技术分享】让电变“机灵”,华为云与开发者共同打造智慧用电
  19. 求命题公式的真值表及主范式(栈实现)
  20. 文本上划线_如何在Word中对文本进行上划线

热门文章

  1. vue中px转rem教程
  2. Python入门|零基础教程
  3. 用JS制作《飞机大作战》游戏_第4讲(创建敌方飞机、敌方飞机发射子弹、玩家子弹击中敌方小飞机,小飞机死亡)-陈远波...
  4. namenode的启动
  5. ArcGIS中利用DEM制作立体晕渲图的说明
  6. 白皮书下载|新一代金融全栈信创云解决方案及成功案例
  7. mat opencv 修改roi_OpenCV Android:在新Mat中定义并保存ROI(OpenCV Android: Define and save ROI in new Mat)...
  8. ES系列:停用集群中的节点
  9. Java生成唯一id的几种方式(已验证)
  10. 信息通信对于城市生活是一柄双刃剑