zoukankan      html  css  js  c++  java
  • Python:每日一题008

    题目

    判断101-200之间有多少个素数,并输出所有素数。

    程序分析:

    判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

    个人思路及代码:

      li=[]
      def is_prime(num):
          n = int(sqrt(num))
          for i in range(2,n+1):
              if num % i == 0:
                  print("%s不是素数"%num)
                  break
          else:
              print("%s是素数" % num)
              li.append(num)
      ​
      for j in range(100,201):
          is_prime(j)
      print("100-200之间的素数个数是%s
    "%len(li),li)
      ​
    

      

    分析:将判断一个数是否属于素数写成函数,用for循环判断一个数是否属于素数。

    其他解答参考:

    解答1:

      
      print("----------判断101-200之间有多少个素数----------")
      ​
      count = 0
      ​
      for i in range(101, 200):
          flag = 0
          for j in range(2, int(i ** 0.5) + 1):
              if i % j == 0:  # 如果不是素数
                  flag = 1
      ​
          if flag == 0:
              count += 1
              print(i)
      ​
      print("101-200之间有 %d 个素数" % count)
    

      

    分析:采用flag的方式,设置标志,逐个输出素数

    解答2:

    
    
     print([i for i in range(101,200) if all(i%ii for ii in range(2,int(i**0.5)+1))])
    

      

    分析:采用了列表解析式,限定了i的范围,同时用内置函数all判断,如果该数除以i**0.5+1余数为0则不是素数,all里面有0则if为false

    解答3:

      
      def isPrime(n):
           if n <= 1:
               return False
           i = 2
           while i*i <= n:
               if n % i == 0:
                   return False
               i += 1
           return True
      ​
      def prime_num(x,y):
          prime_num_li= []
          for i in range(x,y):
              res = isPrime(i)
              if res:
                  prime_num_li.append(i)
          print("素数共有%s个,分别是:%s"%(len(prime_num_li),prime_num_li))
      ​
      if __name__ == "__main__":
          prime_num(100,201)
    

      

    分析:比较完善的写法,采用函数式思想写出的代码。

    (本文编号008,首发于2018年10月11日,修改于2018年10月13日)

  • 相关阅读:
    SPA项目开发之动态树以及数据表格和分页
    SPA项目开发之首页导航左侧菜单栏
    SPA项目开发之登录
    使用vue-cli搭建spa项目
    Splay 平衡树
    主席树(可持久化线段树 )
    P3195 [HNOI2008]玩具装箱TOY
    P2962 [USACO09NOV]灯Lights
    【hdu4405】AeroplaneChess
    HDU3853:LOOPS
  • 原文地址:https://www.cnblogs.com/Nicholas0707/p/9774284.html
Copyright © 2011-2022 走看看