素数打表方法比较
2011-11-25 00:46
211 查看
1,函数方法
2,快速方法
以上方式,在需要大量素数时下面一种比上面效率高的多。但在十万之内,效率都是很高的,基本无差别
#include <stdio.h> #include <string.h> #include <time.h> #define N 10000000 int fun(int x) { int i; for (i=2;i*i<=x;i++) { if(x%i==0) return 0; } return 1; } int main() { freopen("out2.txt","w",stdout); int j=0; for(int i=2;i<=N;i++) if(fun(i)) printf("%d ",i); printf("\nTime used = %.21f\n",(double)clock()/CLOCKS_PER_SEC); return 0; }
2,快速方法
#include <stdio.h> #include <string.h> #include <time.h> #define N 10000000 int a[N+1],s ; int main() { freopen("out.txt","w",stdout); int j=0; memset(a,0,sizeof(int)); for(int i=2;i<=N;i++) if (a[i]==0) { s[j++]=i; for(int k=2;;k++){ int m=k*i; if(m>N) break; a[m]=1; } } for (i=0;i<j;i++) printf("%d ",s[i]); printf("\nTime used = %.21f\n",(double)clock()/CLOCKS_PER_SEC); return 0; }
以上方式,在需要大量素数时下面一种比上面效率高的多。但在十万之内,效率都是很高的,基本无差别
相关文章推荐
- 一种比较简单的判断素数的方法
- 素数打表(两种方法)
- 关于素数打表跟判断素数的一些方法
- uva 10006 素数打表+幂取模(反复平方法)(O(logn))
- 一道素数打表的水题,顺便记下打表高效方法
- 素数遍历方法比较(Find the prime number, with performance monitoring function)
- 各种方法判断素数所用时的间比较
- 判断素数比较快的方法
- 筛法素数打表方法
- 筛法素数打表方法
- 普通方法求素数与筛法求素数比较
- 求一千万以内的素数的比较高效的方法,
- Codeforces 237C:Primes on Interval(素数打表+二分)
- jQuery validate 自定义验证方法 比较日期 三个参数
- 打印素数的方法 (转)
- 几种显示数据的方法的比较
- 如何使用==操作符,Equals方法,ReferenceEquals方法,IEquatable接口比较2个对象
- 客户端调用服务器端方法——ASP.NET AJAX(Atlas)、Anthem.NET和Ajax.NET Professional实现之小小比较
- 素数打表与素数单个判断
- 快速求素数序列方法