素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。

思路1):因此判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。

思路2):另外判断方法还可以简化。m 不必被 2 ~ m-1 之间的每一个整数去除,只需被 2 ~  之间的每一个整数去除就可以了。如果 m 不能被 2 ~  间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。

原因:因为如果 m 能被 2 ~ m-1 之间任一整数整除,其二个因子必定有一个小于或等于 ,另一个大于或等于 。例如 16 能被 2、4、8 整除,16=2*8,2 小于 4,8 大于 4,16=4*4,4=√16,因此只需判定在 2~4 之间有无因子即可。

两种思路的代码请看解析。

思路1) 的代码:

#include int main(){    int a=0;  // 素数的个数    int num=0;  // 输入的整数    printf("输入一个整数:");    scanf("%d",&num);    for(int i=2;i        if(num%i==0){            a++;  // 素数个数加1        }    }    if(a==0){        printf("%d是素数。\n", num);    }else{        printf("%d不是素数。\n", num);    }    return 0;}

思路2)的代码:

#include #include void main(){    int m;  // 输入的整数     int i;  // 循环次数    int k;  // m 的平方根     printf("输入一个整数:");    scanf("%d",&m);    // 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换m的类型     k=(int)sqrt( (double)m );    for(i=2;i<=k;i++)        if(m%i==0)            break;    // 如果完成所有循环,那么m为素数    // 注意最后一次循环,会执行i++,此时 i=k+1,所以有i>k     if(i>k)        printf("%d是素数。\n",m);    else        printf("%d不是素数。\n",m);    return 0;}

两段代码的输出结果相同。
第一次运行结果:

输入一个整数:11是素数。

第二次运行结果:

输入一个整数:9797是素数。

第三次运行结果:

输入一个整数:1010不是素数。

扫码关注我,手把手带你撸代码

如果你觉得文章让您增长了知识,

请点击右下方的“在看

  

三菱st语言编程实例_C语言编程实例39相关推荐

  1. c语言在线编译器_C语言和汇编语言是什么?他们之间可以有怎样的合作?为你解析...

    什么是c语言: C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言;尽管C语言提供了许 ...

  2. java和c语言的区别_C语言为何不会过时?你需要掌握多少种语言?

    关注.星标公众号,不错过精彩内容 整理/排版:付斌 转自:嵌入式ARM 01 为什么C语言不会过时 评价任何一门编程语言,都是招人骂的.永远是这样.就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过 ...

  3. c语言求素数_C语言 | 求100~200的素数

    "要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人-万中无一" --包租婆这道理放在C语言学习上也一并受用.在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语 ...

  4. window直接运行不需要环境的软件是什么语言开发的_C语言为何不会过时?你需要掌握多少种语言?_C 语言...

    01为什么C语言不会过时 评价任何一门编程语言,都是招人骂的.永远是这样.就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:"s b!"这个在 ...

  5. c语言c99标准_C语言的三套标准:C89、C99和C11

    我们今天使用的 Windows.Linux.Mac OS 等操作系统都是由一种叫做 Unix 的系统演化而来.Unix 作为80年代主流的操作系统,是整个软件工业的基础,是现代操作系统的开山鼻祖,C语 ...

  6. c语言学生综合测评系统_c语言图书管理系统_c语言学生综合测评系统_c语言个人账本管理系统...

    c语言销售管理系统设计 c语言设计管理系统,c图书管理系统设计,学生管理系统c语言,职工管理系统c语言,c语言图书管理系统,c语言成绩管理系统,c语言管理系统,c语言银行管理系统,c语言工资管理系统, ...

  7. java c语言与人工智能_C语言与LISP语言的区别

    C语言:C是过程式编程语言.它被设计成使用编译器编译.该语言有少量固定数量的关键字,如if/else,for,while,..等等.我们可以使用一个以上的作业,可以用这种语言在一个语句中使用.函数也在 ...

  8. c语言求跳水运动员成绩,跳水排名_C语言编程实例_C语言_最全面的网站教程

    问题描述:5位跳水高手参加10米高台跳水决赛,有好事者让5人据实力预测比赛结果. A选手说:B第二,我第三: B选手说:我第二,E第四: C选手说:我第一,D第二: D选手说:C最后,我第三: E选手 ...

  9. c语言图形化编程入门_C语言C++新手入门,VS2013编程器安装教程

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...

最新文章

  1. .NET服务器应用程序开发
  2. 底量超顶量超级大黑马指标源码_底量超顶量+地量买点_月线底量超顶量大牛股,底量超顶量超级大黑马,底量超顶量买入指标,后量超前量买入指标_指标公式分享交流论坛_理想论坛 - 股票论坛...
  3. dockerfile、docker compose、k8s区别
  4. 【Elasticsearch】搜索类型 SearchType
  5. 基于OpenCV的计算机视觉入门(3)图像特效
  6. LINUX下用select实现串口通讯示例
  7. Java分词处理测试
  8. 局域网访问PHP项目网站 用IP地址进入
  9. linux mac tree 命令 总结
  10. dialogArguments
  11. 湖畔大学梁宁:比能力重要1000倍的,是你的底层操作系统
  12. Android音频压缩分析
  13. 什么是你的核心竞争力之二?
  14. Google推出GDrive免费云存储服务
  15. Windows虚拟机的相关配置
  16. 第七周 项目四-队列数组
  17. c语言之奇偶数分开排序
  18. echarts实现双y轴
  19. 基于java的学生选课系统_基于Java的学生选课系统.doc
  20. Chapter 3: Strings、Vectors And Arrays

热门文章

  1. 吴恩达-coursera-机器学习-week8
  2. MySql的like语句中的通配符:百分号、下划线和escape
  3. Unieap3.5-Grid翻页不提示修改
  4. gulp plugins
  5. 将php分页类YII绑定框架,就需要改变风格的基础
  6. [LeetCode]Trapping Rain Water
  7. 二十、Java基础--------IO流之其他对象
  8. pro git学习笔记 4
  9. 【Python】一句话 if else 简洁写法
  10. java web 锁_Java中锁的分类