一般素数打表+高效算法
来源:互联网 发布:免费的相亲软件 编辑:程序博客网 时间:2024/05/16 15:38
最近几天脑子越来越来笨了,一个简单的素数环问题纠结一天,没这么搞懂回溯的思路,不过涉及素数的话,突然想总结一下常用的素数打表,
一般用的是下面的代码:
#include <math.h>//素数打表#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>using namespace std;#define maxn 1000000bool p1[maxn]; //判断p[i]中的i是否为素数int p2[maxn]; //存储素数void prim_num(){ int i,j,n; for(i=1; i<=maxn; i++) p1[i]=true; n=(int)sqrt(maxn); for(i=2; i<=n; i++) { for(j=i+i; j<=maxn; j+=i) //素数的合肯定不是素数,这就是判断哪些数不是素数 { p1[j]=false; } } j=1; for(i=1; i<=maxn; i++) //把素数存储入pmaxn[N],下表从1开始 { if(p1[i]) { p2[j++]=i; } }}int main(){ int i; prim_num(); for(i=1;i<=100;i++) //输出前100个的素数 { printf("%d ",p2[i]); } return 0;}从网上找到了另一种写法,效率明显提高不少,线性筛法,目前还在深究。。。。。
代码如下:
/*遇到素数需要打表时,先估算素数的个数:num = n / lnx;num为大概数字,越大误差越小(只是估计,用于估算素数表数组大小)线性筛法wwwww*/#include <iostream>#include <cstring>#include <cstdio>#include <cmath>#include <algorithm>using namespace std;#define maxn 10010000int n;bool visit[maxn];int prime[maxn];void isprime(){ memset(visit, true, sizeof(visit)); int num = 0; for (int i = 2; i <= n; ++i) { if (visit[i] == true) { num++; prime[num] = i; } for (int j = 1; ((j <= num) && (i * prime[j] <= n)); ++j) { visit[i * prime[j]] = false; if (i % prime[j] == 0) break; //深究之处! } }}int main(){ memset(prime, 0, sizeof(prime)); int count= 0; scanf("%d",&n); isprime(); for(int i = 0; i <= n; ++i) if(prime[i]) { printf("%d ",prime[i]); count++; } printf("\n"); printf("the sum of prime num is:%d\n",count); return 0;}以后要用到素数的话, 直接复制,方便不少
0 0
- 一般素数打表+高效算法
- 高效素数打表
- 高效素数打表
- 高效素数打表
- 高效素数打表
- 高效素数打表
- 高效素数打表
- A - 高效素数打表
- 高效 大数素数打表
- 高效素数打表模板
- NEFU 2 猜想 高效素数打表
- nyoj1167 阅读理解 高效素数打表
- 打素数表高效方法(线性)
- 高效判断素数(打表+二分查找)
- 素数筛算法与素数打表[数学]
- 一道素数打表的水题,顺便记下打表高效方法
- 素数判定 - 素数打表
- 逐步修改素数高效算法
- Android SDK Content Loader: (0%)
- IOS静态库-封装自己的.a文件<一>
- tjkelly com/ blog/wordpress-import-failed-how-to-fix-it
- GStreamer基础教程14——惯用的element
- orace10g,TNS遇到TNS-12546: TNS: 权限被拒绝 (permission denied)
- 一般素数打表+高效算法
- java进行ip号码段正则匹配
- SAP ENHANCEMENT
- Android SurfaceView实战 带你玩转flabby bird (上)
- python 有关路径的
- scala总结(3)-- scala中常用类型继承关系
- JAVA开发Web Service几种框架介绍
- 业务逻辑
- 细说Linux下的虚拟主机那些事儿