首页 > TAG信息列表 > 筛除
C语言程序设计100例之(54):素数表
例54 素数表 问题描述 令 Pi表示第 i 个素数。现任给两个正整数 M≤N≤104 ,请输出 PM到PN的所有素数。 输入格式 输入在一行中给出 M 和 N,其间以空格分隔。 输出格式 输出从 PM到 PN的所有素数,每 10 个数字占 1 行,其间以空格分隔。 输入样例 5 27 输出样例 11关于欧拉筛(洛谷模板3383)
欧拉筛是一种素数筛,避免了同一个数被多次筛除,可以在线性时间内找出指定范围内的素数。 筛选素数,一种较为朴素的想法是,对于已经得到的素数集合中的元素,枚举其倍数并筛除。但是,在这个过程中,会有同一个合数被筛多次的可能,例如,由于15=3*5,所以它既理解线性筛法
1 #include<iostream> 2 using namespace std; 3 const long N = 200000; 4 long prime[N] = {0}, num_prime = 0; 5 int isNotPrime[N] = {1,1}; 6 int main() { 7 for(long i = 2; i < N; ++i) { 8 if(!isNotPrime[i]) 9 prime[num_pr素数筛法
这篇博客是按照我学习素数的顺序写的,算法也是一步步推进,一步步优化的,想找最高效的算法可以直接翻到欧拉筛。这是我的第一篇博客,欢迎各路大神指正错误以及提供建议。 素数定义 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 0和1