
欧拉筛
ln2037
用心雕琢我的艺术品。
展开
-
P3601 签到题【欧拉筛 + 欧拉函数】
题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数。 这题作为签到题,给出l和r,要求求∑i=lrqiandao(i) mod 666623333\sum_{i=l}^r qiandao(i)mod666623333∑i=lrqiandao(i) mod 666623333。 输入格式 一行两个整数,l、r。 输出格式 一行一个整数表示答案。 输入输出样例 输入 #1 233 2333 输出 #1 105649原创 2020-10-01 18:56:58 · 361 阅读 · 1 评论 -
P1069 细胞分裂 【数论 + 欧拉筛】
题目描述 HanksHanksHanks 博士是 BTBTBT (Bio−TechBio-TechBio−Tech,生物技术) 领域的知名专家。现在,他正在为一个细胞实验做准备工作:培养细胞样本。 HanksHanksHanks 博士手里现在有 NN N种细胞,编号从 1−N1-N1−N,一个第 ii i种细胞经过 111 秒钟可以分裂为SiS_iSi个同种细胞(SiS_iSi为正整数)。现在他需要选取某种细胞的一个放进培养皿,让其自由分裂,进行培养。一段时间以后,再把培养皿中的所有细胞平均分入M M原创 2020-09-30 21:01:08 · 295 阅读 · 0 评论 -
P1835 素数密度 【欧拉筛 + 埃氏筛法】
题目描述 给定区间[L,R] (L≤R≤2147483647,R-L≤1000000),请计算区间中素数的个数。 输入格式 两个数L和R。 输出格式 一行,区间中素数的个数。 输入输出样例 输入 #1 2 11 输出 #1 5 此题有一个坑。 若一个数是INT_MAX,看起来用int是可以的。但若是把这个数+1了呢? #include <iostream> #include <algorithm> #include <cstring> using namespace st原创 2020-09-29 19:50:30 · 326 阅读 · 0 评论 -
素数线性筛(欧拉筛)
一个数可以分解为一个素数乘以另一个数。 每个数被其最小的素因子筛去,就是素数线性筛。时间复杂度是O(n)。 #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int maxn = 1e5 + 10; int flag[maxn]; int prim[maxn]; int tot; void getPrim() { for(int i = 2;原创 2020-09-29 19:47:38 · 139 阅读 · 0 评论