试除法

  • 1.素数的定义
    • 2.for套嵌使用求解素数
      • 3.试除法的算法优化

1.素数的定义

素数又称为质数,指的是在大于1的整数中 只能被1和这个数本身整除的数。
在了解了素数的定义之后,我们如何用C语言实现在屏幕上打印出100到200的素数呢?

这里我们就可以使用试除法,试除法的思路就是:我们给定一个数N范围在一百到两百之间,然后使用N除以2到N-1,如果都不能除尽则N为素数。

2.for套嵌使用求解素数

下面我们就用for循环来实现逻辑

在这里插入代码片
#include <stdio.h>
int main()
{int i = 0;int coust = 0;for (i = 100; i <= 200; i++){int j = 0;int flag = 1;for (j = 2; j < i; j++){if (i % j == 0){flag = 0;}}if (flag == 1){printf("%d\n", i);coust++;}}printf("coust=%d", coust);return 0;
}

上面flag的使用,将情况转化的十分巧妙,适合仔细品味。

3.试除法的算法优化

上图代码的逻辑我们很容易想到,但是再仔细想一想是不是还有可以优化的地方吗?
比如会被2整除的偶数就一定不是素数,所以说素数一定是奇数,所以我们就可以将第一个for的i++改为i+=2这就减少了循环的次数,减小了内存,加快了运行速度。
虽说以上的修改并没有 神之一手的优化,不过这是重要的思想 我们在写代码时一定要思考如何优化自己写的代码。

【如何求素数】试除法讲解相关推荐

  1. 素数-试除法和埃式筛选法模板

    试除法: bool is_prime(int n) {if (n <= 1) return false;for (int i = 2;i<=sqrt(n);i++)//这样写更好!if ( ...

  2. 算法刷题-数论-试除法求约数、约数个数、约数之和、最大公约数(辗转相除法)

    文章目录 acwing869. 试除法求约数 acwing870. 约数个数 acwing871. 约数之和 acwing872. 最大公约数 acwing869. 试除法求约数 acwing869. ...

  3. 试除法求最小N个素数之二

    Trial division 试除法求最小N个素数是一个经典的算法. 这个算法不同于前一个版本<试除法求最小N个素数>的方法,也是一个比较快速的方法. 这个算法考虑以下两点: 1.偶数中只 ...

  4. 试除法计算最小的N个素数

    Trial division 试除法求最小N个素数是一个经典的算法. 可以使用素数分类的性质来加快计算的速度. 除了2以外,素数只能是2n+1,n>=1. 除了2.3和5以外,素数只能是6n+1 ...

  5. 筛选法与试除法 判断素数

    素数的求解方法 第一种:试除法 第二种:筛选法 ------试除法------- 顾名思义:求一个数X是不是素数,就试用小于x大于1区间的自然数,只要有一个能整除,那么x就不是素数,否则就是. 以输出 ...

  6. 求质数算法的N种境界[1] - 试除法和初级筛法

    ★引子 前天,俺在<俺的招聘经验[4]:通过笔试答题能看出啥?>一文,以"求质数"作为例子,介绍了一些考察应聘者的经验.由于本文没有政治敏感内容,顺便就转贴到俺在CSD ...

  7. 求质数算法的 N 种境界[1] - 试除法和初级筛法

    ★引子 前天,俺在<俺的招聘经验[4]:通过笔试答题能看出啥?>一文,以"求质数"作为例子,介绍了一些考察应聘者的经验.由于本文没有政治敏感内容,顺便就转贴到俺在 CS ...

  8. (转)求质数算法的N种境界[1] - 试除法和初级筛法

    ★引子 前天,俺在<俺的招聘经验[4]:通过笔试答题能看出啥?>一文,以"求质数"作为例子,介绍了一些考察应聘者的经验.由于本文没有政治敏感内容,顺便就转贴到俺在CSD ...

  9. 数学知识 试除法求约数

    试除法求约数 给定 n 个正整数 ai,对于每个整数 ai,请你按照从小到大的顺序输出它的所有约数. 输入格式 第一行包含整数 n. 接下来 n 行,每行包含一个整数 ai. 输出格式 输出共 n 行 ...

最新文章

  1. 5个拓展潜客的创意方法
  2. 延迟反馈带来的样本偏差如何处理
  3. 数据挖掘:数据仓库相关知识笔记
  4. 能识别nvme的pe启动_PE系统纯净(可以识别nvme固态)
  5. python制作加密工具_Python制作钉钉加密/解密工具
  6. cos,sina,tan,cot
  7. 39. 组合总和 ,40. 组合总和 II,216. 组合总和 III
  8. 文后参考文献著录规则 自动生成器 HTML
  9. ProCAD.2D/3D.Designer.v2008.1 1CD(最大程度地提高管道设计效率)\
  10. java中文转英文_中文转换为英文
  11. oracle如何在月份前面加0,时间怎么把月份数字前面添加0
  12. 基于docker搭建l2tp
  13. 学透CSS-当CSS遇到古诗和月亮,月亮动起来!!!
  14. 中兴网关(光猫)DNS故障的解决
  15. 数据库连接池的优点和原理
  16. MATLAB矩阵分块拼装
  17. 关于global_step参数
  18. unity投篮小游戏,原创,请勿转载。
  19. 中国式危机公关9加1策略(第七章 道歉先行策略)
  20. 计算机闹钟3是什么音乐,【PC闹钟】教你电脑自动开机并播放音乐提醒你起床

热门文章

  1. Java中的文件解析——Excel解析
  2. 老张养猪(经典爆笑)
  3. Payment:支付宝手机网站支付教程
  4. 什么是PUP?什么是PUP程序?
  5. c语言字符串筛选字母,【程序设计】  功能:输入一个字符串,过滤此串,只保留串中的字母字 符,并统计新生成串中包含的字母个数...
  6. 【人体骨骼点】发展脉络
  7. Cadence HDL原理图软件使用
  8. Windows下SQLite自动下载并编译(含dll和exe)
  9. 增强云服务器的安全的措施有哪些
  10. StringUtils工具类用法