Python:每日一题 77

2017-11-27 14:34:00
六月
来源:
http://bbs.fishc.com/thread-94283-1-1.html
转贴 523
今日题目:编写一个函数bprime。判断一个数字是否是质数,如果是质数,则返回
  1. '(那个质数数字放在这里) is prime'
复制代码
,如果不是就返回一个列表,列表总的内容是这个数的所有因数。

例子:
  1. bprime(10)
  2. >>>[2, 5]
  3. bprime(30)
  4. >>>[2, 3, 5, 6, 10, 15]
  5. bprime(13)
  6. >>>13 is prime
复制代码





楼主自己的高难度写法(萌新较渣):

您是VIP用户,您可免回复查看本帖隐藏的内容

  1. from math import *
  2. def isprime(n):
  3.     if n <= 1:
  4.         return 0
  5.     m = int(sqrt(n))+1
  6.     for x in range(2,m):
  7.         if n%x == 0:
  8.             return 0
  9.     return 1
  10. def bprime(n):
  11.     l = []
  12.     if isprime(n):
  13.         print (n)
  14.     else:
  15.         x = 2
  16.         while x < n:
  17.             if n % x == 0:
  18.                 l.append(x)
  19.             x = x + 1
  20.     return l
复制代码

大神的两行代码求解:


  1. def divisors(n):
  2.     return [i for i in range(2, n) if not n % i] or '%d is prime' % n
复制代码
发表评论
评论通过审核后显示。