zoukankan      html  css  js  c++  java
  • 初探循环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再取整......

  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/jun-001/p/13162969.html
Copyright © 2011-2022 走看看