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再取整......

  • 相关阅读:
    Ubuntu 修改 ssh 登录后的欢迎信息
    Hbase的配置和安装
    python起的 simpleHTTPServer服务传输文件
    hadoop修改MR的提交的代码程序的副本数
    Fair Scheduler 队列设置经验总结
    调度系统任务创建---创建一个JoinTrigger的依赖任务(五)
    调度系统任务创建---创建一个MultiJob的任务(四)
    调度系统任务创建---创建一个有上下游依赖的任务(三)
    调度系统任务创建---创建一个简单调度任务(二)
    SSM框架新特性关于用Java配置类完全代替XML
  • 原文地址:https://www.cnblogs.com/jun-001/p/13162969.html
Copyright © 2011-2022 走看看