当前位置: 首页 > wzjs >正文

张店网站设计百度推广价格价目表

张店网站设计,百度推广价格价目表,网站开发 工作量,供应邯郸网站建设求n以内的素数,可以用试除法或者埃拉托斯特尼筛法(埃氏筛法) 文章目录 试除法埃拉托斯特尼筛法(埃氏筛法)两种方法测试运行效率 输入:数字n 输出:n以内所有的素数 不管是哪个方法,都…

求n以内的素数,可以用试除法或者埃拉托斯特尼筛法(埃氏筛法)

文章目录

  • 试除法
  • 埃拉托斯特尼筛法(埃氏筛法)
  • 两种方法测试
    • 运行效率

输入:数字n
输出:n以内所有的素数

不管是哪个方法,都有一个数学结论可以减少循环次数:

如果有一个数不是质数,那么它至少有一个因子小于等于他的平方根。所以说n有因数的话,一定有一个小于根号n,因此只需要看遍历到根号n即可。
反过来说,如果根号n内没有某个数的因数,那么整个2,n-1都没有这个数的因数。

试除法

使用i*i而不是sqrt(n)是为了避免对浮点数进行处理。

/**
*  试除法
*  0、1 都不是质数
*  如果有一个数不是质数,那么它至少有一个因子小于等于他的平方根
*  算法效率从n变为根号n
*/
int isPrime(int n){if(n<2) {return 0;}for(int i=2;i*i<=n;i++){if(n%i==0){return 0;}}return 1;
}
void findPrimesByTrialDivision(int n){for (int i = 2; i <= n; i++) {if (isPrime(i)) {printf("%d\t", i);}}printf("\n");
}

埃拉托斯特尼筛法(埃氏筛法)

质数的倍数一定是非质数。从而逐步将非质数排除。
由于:如果有一个数不是质数,那么它至少有一个因子小于等于他的平方根。
所以:外层循环从2-根号n,内层循环从i*i开始。

void Eratosthenes(int n){int *isPrime = calloc(n+1,sizeof(int));for(int i=2;i<=n;i++){// 初始化所有数都是质数isPrime[i] = 1;}for(int i=2; i*i<=n;i++){if(isPrime[i]){for(int j=i*i;j<=n;j+=i){isPrime[j] = 0;}}}for (int i = 2; i <= n; i++) {if (isPrime[i]==1) {printf("%d\t", i);}}printf("\n");
}

两种方法测试

int main(){int n=20;Eratosthenes(n);findPrimesByTrialDivision(n);return 0;
}

在这里插入图片描述

运行效率

我们把打印质数的代码删掉,打印下运行时间

int main() {int n = 6000000;start = clock();Eratosthenes(n);finish = clock();time1 = (double) (finish - start) / CLOCKS_PER_SEC;printf("埃氏筛法所用时间: %f\n", time1);start = clock();findPrimesByTrialDivision(n);finish = clock();time2= (double) (finish - start) / CLOCKS_PER_SEC;printf("试除法所用时间: %f\n", time2);return 0;
}

可以看到埃氏筛法确实在数据量大的的时候效率更高。
在这里插入图片描述

http://www.dtcms.com/wzjs/199735.html

相关文章:

  • wordpress 顶一下搜索引擎优化的特点
  • 太原网站建设哪家最好免费制作永久个人网站
  • 建设企业网站的流程全国疫情今天最新消息
  • 做网站法律条文百度在线人工客服
  • excel网站建设万能的搜索引擎
  • 免费公益主机seo实战培训中心
  • wordpress目录页如何关闭左侧目录怎么优化网站
  • 大型行业门户网站开发建设方案免费的关键词挖掘工具
  • 贵阳酒店网站建设网站注册地址查询
  • 和平苏州网站建设爱站权重查询
  • 北京网站建设公司兴田德润电话免费生成短链接
  • 大连网站建设服务广东优化疫情防控措施
  • 学交互设计网站广州seo优化电话
  • 厦门网站建设u如何创建自己的网站平台
  • 免费印章在线制作seo推广优化公司哪家好
  • 浏览网站怎么用手机做太原seo霸屏
  • 火狐显示网站开发拼多多代运营一般多少钱
  • 网站建设的目标是什么?提供了哪些栏目?seo发包排名软件
  • 露兜博客 wordpress南宁百度seo
  • 中英文网站制作chrome浏览器官网入口
  • 西安网站优化公司今日新闻头条新闻
  • 最新上市新手机seo搜索如何优化
  • 梅州做网站怎么请专业拓客团队
  • 求职简历模板免费下载佛山seo培训机构
  • 东莞做汽车有没有买票的网站做网络营销推广
  • 手机网站和app有什么区别上海自媒体推广
  • 我的世界查询建筑网站注册推广赚钱一个40元
  • 网站产品说明书模板seo人员工作内容
  • wordpress 付费下载吉林百度seo公司
  • wordpress 微信公众平台seo免费课程