
素数
文章平均质量分 82
素筛,素数判断,反素数等
Happig丶
我的孤独,虽败犹荣
展开
-
Codeforces 1499 D. The Number of Pairs(数学推导+埃氏筛)
传送门 题目大意 给定c,d,xc,d,xc,d,x,求出满足c∗lcm(a,b)−d∗gcd(a,b)=xc*lcm(a,b) - d*gcd(a,b) = xc∗lcm(a,b)−d∗gcd(a,b)=x的(a,b)(a,b)(a,b)的对数。 解题思路 差一点就写出来了,以为欧拉筛最小质因子的质因数分解可以过结果却被卡TLE了,忘记了埃氏筛同样可以预处理。 首先是推导式子,这种式子的下手点一般就是根据都是正整数,那么转化过程中涉及到除法的式子一定可以整除。设gcd(a,b)=ggcd(a,b) =原创 2021-03-21 20:18:59 · 366 阅读 · 0 评论 -
Miller-Rabin素数判定
Miller-rabin算法是一个用来快速判断一个正整数是否为素数的算法。它利用了费马小定理和二次探测 费马小定理:如果p是质数,且a,p互质,那么a(p-1) mod p恒等于1。也就是对于所有小于p的正整数a来说都应该复合a(p-1) mod p恒等于1。那么根据逆否命题,对于一个p,我们只要举出一个a(a<p)不符合这个恒等式,则可判定p不是素数。Miller-rabin算法就是多次用...原创 2020-01-27 21:31:00 · 509 阅读 · 0 评论 -
素数筛选及区间素数
埃氏筛法 算法复杂度O( n*log(log n) ) 原理:从2开始,每第一次出现且之前没有它的因数出现就一定是素数,然后再把它的所有倍数设为true bool isprime[maxn]; //maxn即需要求多少范围里的素数,maxn最大为2e^7 int prime[N]; //根据maxn的大小调节,该数组储存了maxn范围内的所有素数 int num; void Prime(){ ...原创 2020-01-28 19:32:02 · 803 阅读 · 0 评论 -
2019 ICPC 徐州区域赛 - C <3 numbers(素数密度)
题目链接 看题目第一眼想到了区间素数,觉得是板子题,但是看了范围发现写不了,int数组最多存到2e7,再大就爆,卡了好久在别人的提醒下才做出。 题解是根据素数分布规律,素数越往后越分散。我回头自己推了一下,假设x=1,当y=48时,素数刚好占这个区间的三分之一,也就是按规律推广到一般情况,当y-x+1>48,就肯定是Yes。如果不是,考虑到数据范围到1e9,因此使用区间素数筛选即可。 代...原创 2019-12-08 21:12:27 · 410 阅读 · 0 评论 -
UVa1521 GCD Guessing Game(唯一分解定理+素筛)
题目链接 Paul had a birthday yesterday, and they were playing a guessing game there with Andrew: Andrew was trying to guess Paul’s age. Andrew knew that Paul’s age is an integer between 1 and n, inclusive...原创 2020-03-06 20:20:18 · 316 阅读 · 0 评论 -
Codeforces Round #641 (Div. 2) A. Orac and Factors(思维/素筛思想)
传送门 这道题折磨了我挺长时间,首先不难看出解题思路,对于第一次我们只需加上n的最小非1因子,后面都是2 思路一:直接从2-n枚举所有的因子,碰到第一个直接加上然后break #include <set> #include <map> #include <stack> #include <queue> #include <math.h> #include <cstdio> #include <string> #includ原创 2020-05-14 17:50:01 · 158 阅读 · 0 评论 -
POJ - 2689 Prime Distance(二次素筛)
传送门 因为一个非素数是被它的最小素数因子筛掉,214748364721474836472147483647内的数要么是素数,要么是能被sqrt(2147483647)sqrt(2147483647)sqrt(2147483647)内的素数整除的合数,也就是说,[l,r][l,r][l,r]区间的所有非素数的素数因子都在sqrt(2147483647)sqrt(2147483647)sqrt(2147483647)内,预先将sqrt(2147483647)sqrt(2147483647)sqrt(2147原创 2020-08-19 17:24:19 · 134 阅读 · 0 评论 -
Miller-Rabin素性测试算法
Miller−rabinMiller-rabinMiller−rabin算法是一个用来快速判断一个正整数是否为素数的算法,它利用了费马小定理和二次探测: 费马小定理:如果ppp是质数且a⊥pa \perp pa⊥p互质,那么ap−1≡1 (mod p)a^{p-1} \equiv 1 ~~ (mod~~ p)ap−1≡1 (mod p)恒等于111。 也就是对于所有小于ppp的正整数aaa来说都应该符合ap−1&nb原创 2020-08-26 15:15:47 · 516 阅读 · 1 评论 -
反素数
反素数 对于任何正整数nnn,其约数个数记为f(n)f(n)f(n)。如果某个正整数nnn满足:对任何正整数i(0<i<n)i(0<i<n)i(0<i<n),都有f(i)<f(n)f(i)<f(n)f(i)<f(n),那么称nnn为反素数 性质 一个反素数的所有质因子必然是从222开始的连续若干质数,因为反素数是保证约数个数为xxx的这个数nnn尽量小 设反素数n=2t1×3t2×5t3×...n=2^{t_1} \times 3^{t_2} \tim原创 2020-09-22 12:10:40 · 191 阅读 · 0 评论