scratch案例——数学之判定质数
给你一个大于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案例——数学之判定质数相关推荐
- 少儿编程150讲轻松学Scratch(十一)-用Scratch巧解数学题——判定质数
前言 质数和合数是数学中的两个基本概念,两位数以内的质数和合数还比较好区分,位数一多,很多人就不太好判断了,但如果借用工具的话,这个问题就比较容易得到解答了.通过Scratch编程,短短几行代码,我们 ...
- 866. 试除法判定质数
试除法判定质数 #include<iostream> #include<cmath> using namespace std; bool cmp(int x) {if (x== ...
- scratch数学编程100例_《scratch编程+数学》课程:编程实现数字黑洞冰雹猜想
冰雹猜想就是指随便给出一个自然数,如果是奇数,那么就给这个数乘以3再加上1:如果是偶数就除以2:依次不停地进行重复计算,可以发现无论这个过程中的数值如何庞大,最终还是会像冰雹一样坠落,变成1,因此就把 ...
- AcWing 866. 试除法判定质数(素数判定)
题目连接 https://www.acwing.com/problem/content/description/868/ 思路 对于一个数来说我们判断其是否有除1和本身外的因子实际上只需要从[2,x] ...
- Scratch案例——画坐标和三角形
是不是Scratch只能作动画呢?No,它能算数学,创作艺术图,创作音乐,功能可强了. 这是用Scratch画数学图,最终画成的效果图,有坐标系,坐标点,等腰三角形. 该怎么样设置脚本?下面脚本画横坐 ...
- 【Scratch案例实操】scratch星际迷航 scratch编程案例教学 少儿编程教案
scratch星际迷航 案例介绍 宇宙空间的探索是我们国家一直以来都在努力发展的科学前言,我们已经能够实现将宇航员送往外太空进行科考工作,同时考查完毕之后可以将宇航员顺利的带回地球,我们今天这个案例就 ...
- 【Scratch案例实操】Scratch画正方形 scratch编程案例教学 scratch创意编程 少儿编程教案
案例名称:画正方形 学习目标: 掌握角色导入.和基本设置 掌握画笔的使用,画笔颜色.粗细以及画笔清除,通过使用抬笔和落笔绘制想要的图形 学会数学几何知识正方形及其特点 熟练掌握循环模块下的" ...
- 120 -算法 - 枚举 数学类 4138:质数的和与积
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <cmath ...
- ~~试除法判定质数 (附模板题)
模板 bool is_prime(int x) {if (x < 2) return false;for (int i = 2; i <= x / i; i ++ )if (x % i = ...
最新文章
- 求解稀疏优化问题——增广拉格朗日方法+半光滑牛顿法
- ORACLE如何删除归档日志文件
- wxWidgets:wxTaskBarButton 示例
- ios php rsa,RSA 加密 iOS
- 企业库4.0 2008年3月发布的CTP
- JVM性能优化之CPU负载过高
- 联想教育应用使用说明(7.6版本)——第5章 常见的问题与解答
- 爱情保卫战 - 爱情保鲜剂 语录收集
- 上座部佛教的佛陀略传
- (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO
- 瑞芯微RK3328_Demo(1)原理图参考
- backtrader最大的坑:没有内置处理涨跌停板
- 说几个微信实用重磅功能!
- vue 大数据 渲染_技术专栏 | DMap——实战Vue百万条数据渲染表格组件开发
- python HEIC 转jpg
- 转专业计算机常见的名词解释,迎鲜肉第9弹|大学生活必知名词解释
- 【软件分析第12讲-学习笔记】可满足性模理论 Satisfiability Modulo Theories
- 管家婆辉煌版常见理解性问题
- jsp1521公交线路管理系统sqlserver
- echarts刻度设置(大小、段数、最小刻度)
热门文章
- 【Linux环境搭建】六、Linux(CentOS7)Maven私服搭建Nexus
- Linux内核源码分析《进程管理》
- Unity3d C# 实现纯鼠标平滑控制场景摄像头(相机)实现自由旋转、移动和围绕节点移动旋转等功能(含源码工程)
- VC++ 繁星音乐播放器
- Vue2/3 脚手架搭建
- Linux 权限管理_sudo授权 学习总结(三)
- 移动互联网引发大融合与大变革
- python简单网页爬虫代码
- 使用DevExpress Reports和PDF Viewer创建AcroForm Designer
- 聊聊提问的艺术(日本版)