Eratosthenes筛法(埃氏筛法)
2017-10-26 09:29
399 查看
一、朴素的筛法
#include<iostream> #include<istream> #include <string.h> #include<stdio.h> using namespace std; int const maxn = 100000; int vis[1000010]; int main() { memset(vis,0,sizeof(vis)); vis[0] = 1; vis[1] = 1; int n; for(int i = 2 ;i <= maxn; i++) for(int j = i*2; j <= maxn; j+=i) vis[j] = 1; scanf("%d",&n); if(!vis ) printf("yes\n"); else printf("no\n"); return 0; }
二、优化的筛法
#include<iostream> #include<istream> #include <string.h> #include <math.h> #include<stdio.h> using namespace std; int const maxn = 100000; int vis[1000010]; int main() { int n; int m=sqrt(maxn+0.5); memset(vis,0,sizeof(vis)); for(int i=0< 4000 /span>;i<2;i++) vis[i]=1; for(int i=2;i<=m;i++) if(!vis[i]) for(int j=i*i;j<=maxn;j+=i) vis[j]=1; scanf("%d",&n); if(!vis ) cout << "yes" <<endl; else cout << "no" << endl; return 0; }
相关文章推荐
- Eratosthenes筛法--Haskell实现
- Eratosthenes筛法求1-100之间的素数
- Eratosthenes筛法生成素数表
- 找质数算法(Sieve of Eratosthenes筛法)
- 素数筛总结篇___Eratosthenes筛法和欧拉筛法(*【模板】使用 )
- 数论初步——Eratosthenes筛法
- 用 Eratosthenes筛法构造1-n的素数表.
- Eratosthenes(埃拉托色尼)筛法
- Sieve of Eratosthenes(埃拉托斯尼斯筛法)
- Eratosthenes筛法和欧拉筛法对比
- POJ 2262 Goldbach's Conjecture(Eratosthenes筛法)
- Eratosthenes筛法的粗糙汇编源代码
- Eratosthenes筛法(素数筛)
- 用Eratosthenes筛法查找质数
- Eratosthenes筛法的F#实现
- 埃拉托色尼(Eratosthenes)筛法
- 区间[A,B]与N互素的元素个数 [容斥][Eratosthenes筛法]
- 找质数算法(Sieve of Eratosthenes筛法)
- Eratosthenes筛法
- Eratosthenes筛法求素数