线性筛选素数
来源:互联网 发布:用友nc软件下载 编辑:程序博客网 时间:2024/06/08 07:25
时间复杂度为O(n)
来自百度文库
一般的线性筛选法
prime[0] = false;
prime[1] =false;
for (int i=2; i<N; i++)
{
if (prime[i])
{
primes[++cnt ]=i;
for (int k=i*i; k<N; k+=i)
prime[k]=false;
}
}
#include<iostream>
#include <cstdio>using namespace std;
const int n=200000;
int prime[n]= {0},num_prime=0;
int main()
{
int a[n]= {1,1},i,j;
for(i=2; i<10000; i++)
{
if(!a[i])
prime[num_prime++]=i;
for(j=0; j<num_prime && i*prime[j]<n; j++)
{
a[i*prime[j]]=1;
if(!(i%prime[j]))
break;
}
}
/*
for(i=0; i<100; i++)
{printf("%d\n", prime[i]);
}
*/
return 0;
}
线性筛法,即是筛选掉所有合数,留下质数
我们知道合数可以由一个质数数与另一个数相乘得到 而同时假设合数a=质数b×质数c×一个数d 令e=c × d,假设b ≥ e,e为合数,令f=d × b a=f × c ,其中c<e;
即比一个合数数大的质数和该合数的乘积可用一个更大的合数和比其小的质数相乘得到 这也是if(!( i % prime[j]))break;的含义,这也是线性筛法算质数表的关键所在
0 0
- 线性筛选素数模板
- 素数线性筛选
- 素数的线性筛选
- 线性筛选素数法
- 线性筛选素数
- 素数线性筛选法
- 素数线性筛选
- 线性筛选求素数
- 线性筛选求素数
- 【线筛】线性筛选素数
- 线性筛选素数--python
- 线性筛选素数。。。。线性哦
- 线性筛选素数(欧拉筛选)
- 浅谈—线性筛选素数
- 快速线性素数筛选[模板]
- 线性筛选素数(模板)
- 素数筛选之“普通筛选”和“线性筛选”
- 线性筛选素数和线性筛选欧拉函数【bzoj2190]
- 学习之路
- 简单的计算器(EL表达式)
- Mysql区分大小写问题
- Kafka官网介绍
- 对Oracle数据库坏块的理解
- 线性筛选素数
- PL/SQL Developer中文乱码问题的解决
- 运用El表达式截取字符串/获取list的长度
- Linux Mysql 区分大小写[转]
- 情相牵,爱未眠
- 【OpenCV学习笔记 011】检测并匹配兴趣点
- Android 7.0 四大新改进
- nginx rewrite规则语法
- PIL 中的 Image 模块