Scratch教程

当前位置:小码王 > 学习教程 > Scratch教程

用Scratch巧解数学题——判定质数
导读:Scratch的功能也是很强大的,通过Scratch编程,短短几行代码,我们就能判断多位数是质数还是合数了。下面跟随南京小码王Scratch培训班老师来动手试试看。

质数和合数是数学中的两个基本概念,两位数以内的质数和合数还比较好区分,位数一多,很多人就不太好判断了,但如果借用工具的话,这个问题就比较容易得到解答了。Scratch是一款深受青少儿喜爱的编程入门工具,虽然比较基础,但Scratch的功能也是很强大的,通过Scratch编程,短短几行代码,我们就能判断多位数是质数还是合数了。下面跟随南京小码王Scratch培训班老师来动手试试看。


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


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


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


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


用Scratch巧解数学题——判定质数


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


用Scratch巧解数学题——判定质数


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


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


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


用Scratch巧解数学题——判定质数


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


Scratch虽然是一款专为少儿设计的编程工具,但功能是非常强大的,有了Scratch基础,日后再学习其他高级程序设计语言,理解起来也更顺畅。南京小码王开设了专门的Scratch培训班,这里有更多有趣的Scratch教程,还有专业老师手把手指导带领孩子们入门,欢迎大家前来试听体验课程。圣诞节将至,小码王还有更多有趣的活动等你来!