预处理素数(个人模版)

预处理素数:

 1 void init()
 2 {
 3         memset(Is_or,0,sizeof(Is_or));
 4     for(int j=2;j<sqrt(maxn);j++)//
 5     {
 6         if(Is_or[j]==0)//去掉合数的倍数.
 7         for(int k=j+j;k<=maxn;k+=j)//去掉倍数.(把这么些个合数的倍数都标记上这个数不是素数.)
 8         Is_or[k]=1;
 9     }
10     for(int i=2;i<=maxn;i++)
11     {
12         if(Is_or[i]==0)
13         {
14             su[cont++]=i;
15         }
16     }
17 }  
时间: 2024-10-12 20:03:14

预处理素数(个人模版)的相关文章

区间素数筛模版

区间素数筛模版 筛出区间[a,b]的素数.(b-a<=10000,1<=a<=b<=2^31) 存在P中,素数个数即为P的size(). ll a,b; bool isprime[maxn]; vector<ll> prime; bool isP[maxn]; vector<ll> P; void play_prime() { memset(isprime,1,sizeof(isprime)); isprime[1]=0; for(int i=2;i<

反素数 -- 数学

反素数就是区间内约数个数最多的那个数. 在ACM题目里, 一般是求约数最多而且数字最小的那个数,[1--n] 二是求约数刚好等于n的最小的那个数 三是求区间里的最小反素数[beign,end] 1和3有区别吗?有,1可以加速,3只能暴力 先说下思路 思路 : 官方题解 : (1)此题最容易想到的是穷举,但是肯定超时. (2)我们可以知道,计算约数的个数和质因数分解有着很大的联系: 若Q的质因数分解为:Q=p1^k1*p2^k2*…*pm^km(p1…pm为素数,k1…km≥1),则Q有(k1+1

筛法模版

1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 int t; 5 bool a[101]; 6 int main() 7 { 8 memset(a, 1, sizeof(a)); 9 a[1] = false; 10 for(int i=2; i<=10; ++i) 11 { 12 if(a[i]) 13 { 14 for(int j=2; j<=100/i; ++j) a[i*j] = f

Codeforces Round #226 (Div. 2) C

题目: CF机子真心强大啊,这样才跑了600ms,给了你n个数的序列,然后m次询问,每次询问求出序列中每个数是 区间[a,b]内的 几个素数的倍数统计一下,然后对于个数求和,看了题目下面的hint很易懂,然后看到a,b的范围有些大哈,2*10^9,不知道怎么处理,但是后来发现,序列中的数 最大为10^7,所以就算a,b,再大也无所谓的,大于序列中的最大数的部分的素数,序列中不会有任何数 是它倍数的,然后就是对10^7以内的 素数进行预处理,同时把序列中的数统计一下个数,在预处理素数的同时 会有一

【Codevs1080】质数环

http://codevs.cn/problem/1031/ 不讲什么,预处理素数+搜索 // <C.cpp> - Sun Oct 9 12:58:23 2016 // This file is made by YJinpeng,created by XuYike's black technology automatically. // Copyright (C) 2016 ChangJun High School, Inc. // I don't know what this program

2017-4-29-Train:Codeforces Round #315 (Div. 2)

A. Music(数学题) Little Lesha loves listening to music via his smartphone. But the smartphone doesn't have much memory, so Lesha listens to his favorite songs in a well-known social network InTalk. Unfortunately, internet is not that fast in the city of

【Codeforces 851D Arpa and a list of numbers】

Arpa的数列要根据GCD变成好数列. ·英文题,述大意:      给出一个长度为n(n<=5000000)的序列,其中的元素a[i]<=106,然后输入两个数x,y(x,y<=109)现在有两种操作:①支付x的代价删除一个数.②支付y的代价将一个数加1.题目要求支付最少的代价,使得原序列所有元素的GCD不为1. ·分析:      GCD不为1?那么就是说每个数至少有一个共同的非1因子.使所有数拥有同一个因子一定比使它们拥有两个相同因子容易,所以题目其实要求我们完成这个任务:对于某个

LIGHT OJ 1289 LCM from 1 to n

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26999 题意: 给定一个n,求,LCM(1,2,3,.....,n) 分析: 几个数的最小公倍数等于这些数的素因子的最高次幂的乘积: 由于求1到n的所有的数的最小公倍数 ,所有的素因子为小于等于n的所有素数 因此我们至于要求出这些素数在n内的最高次幂即可. 我们可以先预处理出所有的素数的乘积,然后再乘上到n的p[i]最高次幂/p[i]. 因为是对2^32取模 我们

南邮第八届程序设计竞赛之网络预选赛

抱着试一试的态度参加学校的竞赛,自己还是太水,只会做签到题,虽然进入现场赛了,但还是有点担心啊,吗一下总结总结; [+] 1.帅神妹纸的生日礼物 2.玛德之杖 3.小明的排队 4.Money 5.简单的序列 6.有趣的区间异或值 7.Single or Single 8.有套路的BoJie 9.Dreaming 10.小明表达式 11.拯救活动室的男女比例 12.文科生or理科生 帅神妹纸的生日礼物 时间限制(普通/Java):1000MS/3000MS         运行内存限制:65536