• 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日)

  • 相关阅读:
    java 安全沙箱模型详解
    ProcessLifecycleOwner判断Android应用程序前后台切换
    React 使用 antd 实现按需加载
    数据湖!这是个什么东东!!!
    Linux sed awk 总结之001
    Linux超实用网络篇汇总001
    非常实用Curl命令整理
    Mysql 查找锁定事务并kill
    sqlserver 查看sql语句是否被重用
    Linux下配置mysql允许指定IP远程访问
  • 原文地址:https://www.cnblogs.com/Nicholas0707/p/9774284.html
Copyright © 2020-2023  润新知