题目:找出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再取整......