一、练习题
练习1:实现计算求最大公约数和最小公倍数的函数。
练习2:实现判断一个数是不是回文数的函数。
练习3:实现判断一个数是不是素数的函数。
练习4:写一个程序判断输入的正整数是不是回文素数。
答案:
练习1:
"""
函数的定义和使用 - 求最大公约数和最小公倍数
"""
def gcd(x, y):
if x > y:
(x, y) = (y, x)
for factor in range(x, 1, -1):
if x % factor == 0 and y % factor == 0:
return factor
return 1
def lcm(x, y):
return x * y // gcd(x, y)
print(gcd(15, 27))
print(lcm(15, 27))
练习2:
"""
判断一个数是不是回文数
"""
def is_palindrome(num):
temp = num
total = 0
while temp > 0:
total = total * 10 + temp % 10
temp //= 10
return total == num
练习3:
"""
判断一个数是不是素数
"""
def is_prime(num):
for factor in range(2, num):
if num % factor == 0:
return False
return True if num != 1 else False
练习4:
"""
判断输入的正整数是不是回文素数
"""
if __name__ == '__main__':
num = int(input('请输入正整数: '))
if is_palindrome(num) and is_prime(num):
print('%d是回文素数' % num)