欧拉筛求素数模版 public class Prime { //欧拉筛的时间复杂度O(n),每个数只筛一次,使用最小的质因子去筛 [埃氏筛法有重复筛同一个数,时间复杂度为O(n*log(log(n)))] public static boolean[] visit; //true代表不是素数,fal ...
分类:
其他好文 时间:
2020-04-30 13:54:50
阅读次数:
72
定义法 素数可以由定义法求出,即遍历2到sqrt(x)中是否存在能整除x的数,如果存在则不是素数,如果不存在,则是素数,复杂度是O(n)。在数据量小的时候可以使用。 质数 2可以把4标记成合数 此时 质数集合有 :2 质数 3可以把 6,9 标记成合数 此时 质数集合有 :2,3 质数 5可以把10 ...
分类:
其他好文 时间:
2020-02-23 11:32:29
阅读次数:
74
说到求素数,其实自己刚学C++那时也遇到过这种问题,如果你那时候叫我写个求1~100以内的素数的程序,我会毫不犹豫的这样写(然后被一堆大佬疯狂吊打qwq): cpp include using namespace std; bool book[20005]; int main(){ //求1~100 ...
分类:
其他好文 时间:
2020-02-14 14:44:06
阅读次数:
71
基础知识,没什么好说的,直接上代码! 1 const int maxn = 1e8; 2 int prime[maxn+5]; 3 int len; 4 5 int initial_prime() 6 { 7 memset(prime,0,sizeof(prime)); 8 prime[0]=pri ...
分类:
其他好文 时间:
2020-02-01 23:09:18
阅读次数:
63
https://vjudge.net/problem/POJ-3126 题意:T组数据,每组数据给你两个四位数 a 和 b. 每次你可以变幻四位数 a 某个位置上的数字,得到一个新的四位数 t,并且 t 是素数, 问变幻多少次后,可以得到四位数 b. 题解:埃式筛法求素数(暴力求素数应该也可,口嗨) ...
分类:
其他好文 时间:
2020-01-30 10:07:05
阅读次数:
62
弱鸡准备校赛的时候看了一下最简单的筛法求素数: 开一个bool数组 奇数为true 偶数为false 因为偶数肯定不是素数嘛 然后遍历 如果a[i]==true 就把所有的i的倍数全设为 false 如此遍历到 sqrt(n)就将所有的小于n的素数全部筛出来了 代码: 在此基础上优化的算法是 只存奇 ...
分类:
其他好文 时间:
2019-04-13 00:47:42
阅读次数:
127
PS:求逆元的部分在文章最后。。。最好也看看前边的知识吧qwq 用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。(来自 百度百科) 一般的筛法(埃拉托斯特尼筛法)的效 ...
分类:
其他好文 时间:
2019-02-14 00:15:32
阅读次数:
165
1 using System; 2 public class PrimeFilter 3 { 4 public static void Main( string [] args ) 5 { 6 int N = 100; 7 bool [] a = new bool[N+1];//bool数组 8 9... ...
分类:
其他好文 时间:
2019-02-02 12:54:13
阅读次数:
203
前言 初等数论在OI中应用的基础部分,同机房的AuSquare和zhou2003君早就写完了,一直划水偷懒的Hk pls表示很方,这才开始了这篇博客. $P.S.$可能会分部分发表。 筛法求素数 埃式筛素数 问题:求$[1,n]$中的所有素数 总体思路就是在$[2,n]$中每当我们找到一个新的素数, ...
分类:
编程语言 时间:
2018-10-10 14:37:30
阅读次数:
268
一:三种基本的素数判定 1:穷举法:适用于数据较小的时候。时间复杂度:O() 2:埃拉托瑟尼筛法求素数 时间复杂度:O() 3:欧拉筛法 ...
分类:
其他好文 时间:
2018-10-07 13:47:47
阅读次数:
168