初探循环3---找质数

题目:找出2到100中的质数

首先我们得知道质数是什么,百度查一下是这样的

 

 

 简而言之就是,它是一个自然数

                           它有两个因数1和本身

那么如何判断一个数是质数

比如87,我们需要用1到87分别去整除87,最后整除的次数只有两次那么就可以判断这个数是质数

1,for循环

那么我们很容易想到会有两组数列循环

 然后我们要干嘛呢,去整除

 会发现还差点东西次数,那么我们可以在起始设置一个频率为0,如果整除一次就加1,最后整除次数为2就为质数了

 于是完整的代码就出现了

结果就是

 当然有人代码可能会写成这样

 也未尝不可但是我总觉得:尽管能够满足要求  ,但是却脱离了本质让人不知道想干嘛,脱离了定义

因为我觉得即使这样写也比刚才那个好

 因为质数的定义就是不能被1和本身两个数整除啊,你整除一个是个什么鬼

这个代码私简单又很短,但是这个i和j会让人不知道你想干嘛,代码是让人看的,我更希望命名能够更加的规范一下,比如这个i用质数的单词,这个j我也不知道用什么单词,原谅我的一点草率,如果有好的单词建议,那么希望能够留言告诉我,我希望代码是这样的

尽管看起来更复杂了,但是我觉得这样或许看懂的能够多一些

 2,while循环

无论用哪种循环,过程永远都是不会变的,就像我之前问把大象放进冰箱需要几步,打开冰箱,把大象放进去,关上冰箱

while循环也是一样,需要两个数组,然后去整除

一步一步来写:

 两个数组是不是已经完成是不是很简单

然后需要加一个整除的条件和整除的频率

 最后满足一定的条件打印出来就可以了

 最后结果就是:

 当然了你要写成这样,也可以,毕竟条条大路通罗马,但是基本的定义不会变,最本质的逻辑和判断不会变

又是同样的问题来了,命名,每个人应该养成良好命名的习惯,比如将i和j换成某个词的单词,因为我们经常会听说某人写的代码交接的人看不懂,那我觉得那是写的非常糟糕的代码,尽管可能满足了公司的一切要求

3,关于所有的数字,只有想用代码去找,只有搞清楚了基本定义,最本质的东西,顺着步骤去写就可以了

比如什么水仙花数啊 回文数啊........

简单的说一下回文数,比如7位数的回文数吧,终究是第一个数等于最后一个,第二个等于倒数第二个...

我们只要把每个数表示出来,比如百万位就是这个数整除1000000,然后取整,比如a=1234567,开始的一位数是int(a/1000000)

第二位就是a整除1000000以后余数再除以100000再取整......

原文地址:https://www.cnblogs.com/jun-001/p/13162969.html