1.1 定义 厄拉多塞到底是怎样筛选素数的呢?他造了一张1到50的素数表,首先写上1到50的所有自然数,然后先划去1,把2留下,再划去其他所有2的倍数,把3留下。再划去其他所有3的倍数,把5留下。又划去其他所有5的倍数……依此类推,可以得到50以内的所有素数。这就是著名的“厄拉多塞筛法”。 1.2计 ...
分类:
其他好文 时间:
2020-12-08 12:45:58
阅读次数:
4
题目链接:https://codeforces.com/problemset/problem/1114/F 题目大意:给你n个数,q次操作,类型1,将区间[l,r]中每个数乘以x,类型2,询问$\varphi (\prod_{i=l}^{r}a_i)$。其中初始的n个数每个小于等于300,x<=30 ...
分类:
其他好文 时间:
2020-07-12 19:09:23
阅读次数:
52
素数筛时间空间优化 时间优化 普通素数筛原理 :素数的倍数一定不是素数;据此筛选素数。 1void?work1() 2{ 3 int?cnt=0; 4 for(int?i=2;?i<=n;?i++) 5 { 6 if(!flag[i]) 7 { 8 prime[cnt++]=i; 9 / 在此处可有 ...
分类:
其他好文 时间:
2020-05-14 16:01:39
阅读次数:
77
如何高效判定、筛选素数 labuladong发布于 7 个月前23.4k 素数的定义很简单,如果一个数如果只能被 1 和它本身整除,那么这个数就是素数。 不要觉得素数的定义简单,恐怕没多少人真的能把素数相关的算法写得高效。比如让你写这样一个函数: // 返回区间 [2, n) 中有几个素数 int ...
分类:
其他好文 时间:
2020-05-12 16:34:06
阅读次数:
58
简介 线性筛数一般用于筛选素数,有时也可以用于求因数个数和因数和等,但是由于我太蒟了,所以不会,所以这里暂时不列出来。 筛选素数的方法有很多种,第一种是暴力求解法: 对于一个要判断是否是素数的数n,我们通过传统说明“n是素数,表示这个n不被n以内的任何数整除(除了1)”来求,把i=2~n全部枚举一遍 ...
分类:
其他好文 时间:
2018-08-12 23:37:14
阅读次数:
230
1 const int M=10000; 2 int m=(int)sqrt(M+0.5); 3 bool vis[M]; 4 int pre[M],t; 5 void init() 6 { 7 t=0; 8 memset(vis,0,sizeof(vis)); 9 for(int i=2;i<=m... ...
分类:
其他好文 时间:
2018-07-14 14:47:10
阅读次数:
107
内容摘要: 素数(prime number)到底是啥数: 定义: 在大于1的自然数中,除了1和它本身以外不能再被其他数所整除。 实例化定义: 3是素数,因为它不可以被除了“1”以及自身“3”之外的数所整除。 10不是素数,因为它除了“1”以及自身“10”之外,还可以被"2",“5”等数字所整除,所以 ...
分类:
其他好文 时间:
2018-05-11 20:10:51
阅读次数:
433
【A-风格不统一如何写程序】 输入字符串,得到长度,对于每个字符:如果是大写,则改为:‘_’+小写;如果是‘_’则忽略‘_’,并且把后面的小写改为大写。 【B-歌德巴赫猜想】 两种解法: 一:先把素数筛选出来,然后试探即可。筛选素数一般是埃氏筛法和欧式筛(不会的请自学)。 二:枚举p,q=n-p,然 ...
分类:
其他好文 时间:
2018-02-22 16:44:06
阅读次数:
193
欧拉筛是线性时间复杂度筛选素数的算法。 先看一般筛法寻找素数: 先说明上面的代码可以正确找到所有[1,n)之间的素数。如果一个数x是素数,那么isPrime[x]恒为真。如果x为合数,则可以分解为p与x/p,其中p是x的最小素因子。而p,x/p<x,我们不妨设p<=x/p,则当i=x/p时,此时p已 ...
分类:
其他好文 时间:
2018-02-06 14:26:54
阅读次数:
210
js基础查漏补缺: 1. NaN != NaN; 复制数组可以用slice; 数组的sort、reverse等方法都会改变自身; Map是一组键值对的结构,Set是key的集合; Array、Map、Set都属于iterable类型,可用for...of遍历; 2. rest参数只能写在最后,前面用 ...
分类:
Web程序 时间:
2018-01-07 14:22:15
阅读次数:
147