地址:https://inst.eecs.berkeley.edu/~cs61a/sp21/lost/lost01.pdf
lost是对课程内容的补充练习,重在练习。
def is_prime(n):
"""
>>> is_prime(10)
False
>>> is_prime(7)
True
"""
for i in range(2, n):
if n % i == 0:
return False
return True
def is_prime2(n):
return n > 1 and smallest_factor(n) == n
def smallest_factor(n):
k = 2
while k <= n:
if n % k == 0:
return k
k += 1
def ordered_digits(x):
'''
>>> ordered_digits(5)
True
>>> ordered_digits(11)
True
>>> ordered_digits(127)
True
>>> ordered_digits(1357)
True
>>> ordered_digits(21)
False
>>> result = ordered_digits(1375) # Return, don't print
>>> result
False
'''
xl = list(str(x))
return xl == sorted(xl)
def rect(area, perimeter):
"""Return the longest side of a rectangle with area and perimeter that has integer sides.
>>> rect(10, 14) # A 2 x 5 rectangle
5
>>> rect(5, 12) # A 1 x 5 rectangle
5
>>> rect(25, 20) # A 5 x 5 rectangle
5
>>> rect(25, 25) # A 2.5 x 10 rectangle doesn't count because sides are not integers
False
>>> rect(25, 29) # A 2 x 12.5 rectangle doesn't count because sides are not integers
False
>>> rect(100, 50) # A 5 x 20 rectangle
20
"""
side = 1
while side * side <= area:
other = round(perimeter / 2 - side)
if other == area / side:
return other
side = side + 1
return False