例题:写一个程序,打印100-200之间的素数

  1. 方法一:
//写一个代码,打印100-200之间的素数
#include<stdio.h>
int main()
{int i = 0;//定义一个变量ifor (i = 100; i <= 200; i++){//判断i是否为素数//用每个数除以2到它本身的数,看是否有余数int j = 0;for (j = 2; j < i; j++){if (i % j == 0){break;}}//这个循环就是判断是否除以2到它本身的过程中每个过程是否有余数if (i == j)//当输出i=j的时候,说明一直有余数,即为素数{printf("%d ", i);}}return 0;
}

方法一是最基本,用每一个数除以2到它本身之间的每一个数,看是不是都除不进,有没有余数,如果都无法整除那么导出这个数,其中运用了两个for循环。

  1. 方法二:
#include<stdio.h>
int main()
{int count = 0;int i = 0;for (i = 100; i <= 200; i++){//判断i是否为素数int j = 0;int flag = 1;for (j = 2; j < i; j++){if (i % j == 0){flag = 0;break;}}if (flag == 1){count++;printf("%d ", i);}}printf("\ncpunt=%d\n", count);return 0;
}

方法二是在方法一上面给每个数一个定义flag,如果是素数,那么出循环的时候,这个数对应的flag值就是1,如果不是,那么对应的flag值就是0,只需要打印flag值是1的即可,因为flag值对应着1,就代表它是素数。
3. 方法三:

#include<stdio.h>
#include<math.h>
int main()
{int count = 0;int i = 0;for (i = 100; i <= 200; i++){//判断i是否为素数int j = 0;int flag = 1;//假设i就是素数for (j = 2; j <= sqrt(i); j++){if (i % j == 0){flag = 0;break;}}if (flag == 1){count++;printf("%d ", i);}}printf("\ncpunt=%d\n", count);return 0;
}

方法三是第二种方法的优化,其中引用了sqrt()函数,此函数是对()里面的值进行开方,假如i=121,那么经过sqrt()函数的处理之后,就会变成11,同理,假如i=169,那么经过函数sqrt()函数的处理之后就变成了13,只要开方后的数值为素数,那么i本身就是一个素数,方法三可以让计算机运行的更快,其中要注意的是,sqrt()函数要引用头文件<math.h>。
4. 方法四:

#include<stdio.h>
#include<math.h>
int main()
{int count = 0;int i = 0;for (i = 101; i <= 200; i += 2){//判断i是否为素数int j = 0;int flag = 1;//假设i就是素数for (j = 2; j <= sqrt(i); j++){if (i % j == 0){flag = 0;break;}}if (flag == 1){count++;printf("%d ", i);}}printf("\ncpunt=%d\n", count);return 0;
}

方法四是方法三的优化,因为本例题求的是100-200之间的素数,而素数的定义是只能被1和它本身整除,所以除了2以外,所以能被2整除的数(即偶数),都不可能是素数,所以在第一个for循环中,变量i的改变是i += 2,i的初识值是101,因为100是个偶数(即不是素数,不用管它),这个方法能在方法二的基础上让计算机运行的更快,因为少了一半的运行量(即偶数的运算)。
注:代码中count的值是100-200之间素数的个数

《看美女不掉头发》【C语言】求一个数是否为素数的四种方法相关推荐

  1. php怎么求最小公倍数,C++_详解C语言求两个数的最大公约数及最小公倍数的方法,求两个正整数的最大公约数nbs - phpStudy...

    详解C语言求两个数的最大公约数及最小公倍数的方法 求两个正整数的最大公约数 思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法.通式分别为 f(x, y) = f(y, x%y) ...

  2. C语言中三个数比较大小详解——三种方法

    ​ C语言中三个数比较大小详解--三种方法 方法一:if-else法 方法二:函数法 方法三:三目运算符法 C语言中比较三个数的大小有很多方法,以下是我总结的三种方法: 首先我定义 int a = 1 ...

  3. 剑指offer——面试题9:求斐波那切数列的四种方法

    剑指offer--面试题9:求斐波那切数列的四种方法 另一个相关的链接:https://blog.csdn.net/Allenlzcoder/article/details/80297333 总结下求 ...

  4. Java求两集合中元素交集的四种方法对比总结

    hello,你好呀,我是灰小猿,一个超会写bug的程序猿! 最近在做项目的时候有用到对两个集合中的元素进行对比求其交集的情况,因为涉及到的数据量比较大,所以在进行求两个集合中元素交集的时候,就应该考虑 ...

  5. 【C语言】实现求两个数的最大公约数【四种算法】

    题目 给定两个数,求这两个数的最大公约数 例如: 输入:20 40 输出:20 解题思路 最大公约数:即两个数据中公共约数的最大者 求解的方式比较多,暴力穷举.辗转相除法.更相减损法.Stein算法算 ...

  6. C语言:判断一个数是否为素数(3种方法,含注释)

    首先要先明白素数的定义:除了1和本身之外,没有其他的因数的数,即不能被其他数整除. 同时要注意,1不是素数. 以下为判断素数的3个代码: 1.要注意给m赋初值是不能为1,因为1是任何数的因数,可以被任 ...

  7. python求任意范围的所有素数_Python 2种方法求某个范围内的所有素数(质数)

    素数简介 质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数:否则称为合数. 方法1 def primeNUM(min,max): if min==1: print( ...

  8. java factorial_[Java]函数求阶乘n!(factorial)(四种方法)

    1. 引言 实现阶乘的方法很多,这边介绍三种方法,分别是递归,尾递归,循环和BigDecimal. 2. 代码 public class Test { public static void main( ...

  9. 用C语言求三个数的最大值与排序

    用C语言求三个数的最大值与排序 1.用C语言求三个数的最大值 语法:if语句 代码如下: #include<stdio.h> int main() {int a, b, c;printf( ...

  10. 如何用C语言求两个数的较大值

    用C语言求两个数的较大值,有两种方法: 1,常规方法,利用选择语句的 if 语句 #include<stdio.h> int main() {int a=10;int b=20;if (a ...

最新文章

  1. 电商巨头纷纷入场中国农民丰收节交易会 谋定产销对接活动
  2. java 轻量级map,java Map 遍历速度最优解
  3. mybatis基础学习3---特殊sql语句(备忘)
  4. 再次了解深浅拷贝问题
  5. 漏洞挖掘利器-Fuzz技术介绍
  6. Python下的数据处理和机器学习,对数据在线及本地获取、解析、预处理和训练、预测、交叉验证、可视化
  7. wire routing 网格寻址
  8. selenium实现文件上传方法汇总(AutoIt、win32GUI、sengkeys)---基于python
  9. 计算机软考网络工程师历年真题,2019上半年软考网络工程师考试下午真题
  10. cad插件_CAD素材与插件合集
  11. AM使用指南之一:Transaction和DBTransaction的区别与联系
  12. matlab模拟投硬币实验,利用几何画板模拟抛硬币实验
  13. 迅捷pdf转换成word转换器 4.1 官方版
  14. uniapp APPH5端获取地理位置信息(百度地图高德地图)
  15. react-native-webrtc之采坑之旅
  16. Homebrew替换阿里云镜像源
  17. 【目标检测】K-means计算anchors
  18. Franka Emika Panda 机械臂环境配置
  19. 使用canvas绘制一个动态的表盘
  20. 百度地图定位出现4.9E -324的问题解决

热门文章

  1. 提高笔记本无线网络速度
  2. 因子分析法(Factor Analysis)是什么分析?
  3. Android 复杂的多类型列表视图新写法:MultiType 3.0
  4. 大学生活这样过,等着 Offer 飞来找 | 程序员有话说
  5. 计算机文件夹无法排序,文件夹下文件不能手动调整顺序?-开启Windows 7文件/文件夹手动排序功能...
  6. 基于CAA的CATIA二次开发环境搭建全过程(亲测可用)
  7. c51流水灯实验报告汇编语言,单片机流水灯实验报告
  8. Mentohust 编译安装方法 (2022)
  9. 2020最新注册卡密微信在线充值购卡功能(适用于各种网络验证开发)【易语言源码】
  10. PHY卡 网卡区别联系