给你一个大于1的自然数,请判断它是合数还是质数!比如,99991是质数还是合数?

我们知道,质数就是只有1和它自身两个因数的数。因此,要判断一个大于1的自然数n是不是质数,最简单的办法就是看n能不能被2n-1中的某个数整除。只要有一个数能被n整除,n就是合数;如果都不能被n整除,n就是质数。比如97,我们就看它能不能被296中的某一个数整除。

这个方法说起来很简单,但是如果给出的数较大,实际算起来就没那么简单!比如,99991。再比如,1234567891。通过人工计算来判断出它们是质数还是合数,那真不是一件容易的事。

能不能编一个程序让计算机来帮助我们计算呢?当然可以!根据上述算法就可以画出程序流程图。

有了流程图,编写代码就很简单了。流程图就是编程的施工图。学习编程,画流程图是基本功。一定要养成无流程图不写代码的好习惯!流程图本身就是编程思路的体现,通过画流程图也可以进一步整理我们的思路。

程序写好后,还要调试,看看功能是否正常。通过调试,我们会发现对于不太大的数,这个程序很快就能给出结果,简直是秒杀!但如果你输入1234567891,程序运行很久才会出结果。这种状况,其实也是不能接受的。正如你玩一个游戏,它老是卡顿,你还会玩吗?一个好的程序,只考虑功能的正确性是不够的,还要考虑它的运行速度,它占用计算机内存的情况。当然,这是对高级程序员的要求。我们在学习编程的时候,更多地还是考虑功能的正确性。

运行速度过慢,怎么办?重新设计呀!太慢,严格来讲就是不符合设计要求。你必须重新考虑程序的架构和实现算法。

要判定一个数n是不是质数其实不需要一直试到n-1,到n的算术平方根(要取整,绝大多数程序设计语言都有取整运算符或者功能块)就可以了!其流程图与之前的算法基本相同,不再赘述。直接上程序代码。

运行程序,按照提示输入1234567891。程序很快就给出结果了。由此可见,在编程中,算法是很重要的。随着学习的深入和编制的程序越来越复杂,我们就能更深地体会到:算法是程序的灵魂。

计算机是不是很强大呀!但前提是你要会编程呀!只有会编程,你才能让计算机替你解决问题呀!别担心,编程其实也没有想象那么难!只要你愿意学。
转自:www.daerhou.cn

scratch案例——数学之判定质数相关推荐

  1. 少儿编程150讲轻松学Scratch(十一)-用Scratch巧解数学题——判定质数

    前言 质数和合数是数学中的两个基本概念,两位数以内的质数和合数还比较好区分,位数一多,很多人就不太好判断了,但如果借用工具的话,这个问题就比较容易得到解答了.通过Scratch编程,短短几行代码,我们 ...

  2. 866. 试除法判定质数

    试除法判定质数 #include<iostream> #include<cmath> using namespace std; bool cmp(int x) {if (x== ...

  3. scratch数学编程100例_《scratch编程+数学》课程:编程实现数字黑洞冰雹猜想

    冰雹猜想就是指随便给出一个自然数,如果是奇数,那么就给这个数乘以3再加上1:如果是偶数就除以2:依次不停地进行重复计算,可以发现无论这个过程中的数值如何庞大,最终还是会像冰雹一样坠落,变成1,因此就把 ...

  4. AcWing 866. 试除法判定质数(素数判定)

    题目连接 https://www.acwing.com/problem/content/description/868/ 思路 对于一个数来说我们判断其是否有除1和本身外的因子实际上只需要从[2,x] ...

  5. Scratch案例——画坐标和三角形

    是不是Scratch只能作动画呢?No,它能算数学,创作艺术图,创作音乐,功能可强了. 这是用Scratch画数学图,最终画成的效果图,有坐标系,坐标点,等腰三角形. 该怎么样设置脚本?下面脚本画横坐 ...

  6. 【Scratch案例实操】scratch星际迷航 scratch编程案例教学 少儿编程教案

    scratch星际迷航 案例介绍 宇宙空间的探索是我们国家一直以来都在努力发展的科学前言,我们已经能够实现将宇航员送往外太空进行科考工作,同时考查完毕之后可以将宇航员顺利的带回地球,我们今天这个案例就 ...

  7. 【Scratch案例实操】Scratch画正方形 scratch编程案例教学 scratch创意编程 少儿编程教案

    案例名称:画正方形 学习目标: 掌握角色导入.和基本设置 掌握画笔的使用,画笔颜色.粗细以及画笔清除,通过使用抬笔和落笔绘制想要的图形 学会数学几何知识正方形及其特点 熟练掌握循环模块下的" ...

  8. 120 -算法 - 枚举 数学类 4138:质数的和与积

    #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <cmath ...

  9. ~~试除法判定质数 (附模板题)

    模板 bool is_prime(int x) {if (x < 2) return false;for (int i = 2; i <= x / i; i ++ )if (x % i = ...

最新文章

  1. 求解稀疏优化问题——增广拉格朗日方法+半光滑牛顿法
  2. ORACLE如何删除归档日志文件
  3. wxWidgets:wxTaskBarButton 示例
  4. ios php rsa,RSA 加密 iOS
  5. 企业库4.0 2008年3月发布的CTP
  6. JVM性能优化之CPU负载过高
  7. 联想教育应用使用说明(7.6版本)——第5章 常见的问题与解答
  8. 爱情保卫战 - 爱情保鲜剂 语录收集
  9. 上座部佛教的佛陀略传
  10. (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO
  11. 瑞芯微RK3328_Demo(1)原理图参考
  12. backtrader最大的坑:没有内置处理涨跌停板
  13. 说几个微信实用重磅功能!
  14. vue 大数据 渲染_技术专栏 | DMap——实战Vue百万条数据渲染表格组件开发
  15. python HEIC 转jpg
  16. 转专业计算机常见的名词解释,迎鲜肉第9弹|大学生活必知名词解释
  17. 【软件分析第12讲-学习笔记】可满足性模理论 Satisfiability Modulo Theories
  18. 管家婆辉煌版常见理解性问题
  19. jsp1521公交线路管理系统sqlserver
  20. echarts刻度设置(大小、段数、最小刻度)

热门文章

  1. 【Linux环境搭建】六、Linux(CentOS7)Maven私服搭建Nexus
  2. Linux内核源码分析《进程管理》
  3. Unity3d C# 实现纯鼠标平滑控制场景摄像头(相机)实现自由旋转、移动和围绕节点移动旋转等功能(含源码工程)
  4. VC++ 繁星音乐播放器
  5. Vue2/3 脚手架搭建
  6. Linux 权限管理_sudo授权 学习总结(三)
  7. 移动互联网引发大融合与大变革
  8. python简单网页爬虫代码
  9. 使用DevExpress Reports和PDF Viewer创建AcroForm Designer
  10. 聊聊提问的艺术(日本版)