在本练习中,我们将只考虑严格的正整数。
编写一个plus_grand_prime_divisor (n) 函数,返回整数 n 的最大素数除数。
写一个函数pgcd (a, b)返回整数 a 和 b 的最大公约数。
编写一个函数ppcm (a, b)返回 a 和 b 的最小公倍数。
编写一个不可约函数(分子,分母),如果相应的分子/分母分数是不可约的,则返回True,否则返回False。
在本练习中,我们将只考虑严格的正整数。
编写一个plus_grand_prime_divisor (n) 函数,返回整数 n 的最大素数除数。
写一个函数pgcd (a, b)返回整数 a 和 b 的最大公约数。
编写一个函数ppcm (a, b)返回 a 和 b 的最小公倍数。
编写一个不可约函数(分子,分母),如果相应的分子/分母分数是不可约的,则返回True,否则返回False。
def prime(n):
for i in range(2, int(pow(n, 0.5)) + 1):
if n % i == 0:
return False
return True
# plus_grand_prime_divisor (n) 函数,返回整数 n 的最大素数除数。
# 有可能是n自身
def plus_grand_prime_divisor(n):
for i in range(n, 1, -1): # n -> 2
if n % i == 0 and prime(i):
return i
return -1
def pgcd(a, b):
if a % b == 0:
return b
else:
return pgcd(b, a % b)
def ppcm(a, b):
return a * b / pgcd(a, b)
# 一个分子、分母,除1外还有其他公约数的分数,叫做可约分数
def isReducible(a, b):
gcdValue = pgcd(a, b) # 最大公约数
if gcdValue == 1: # 只考虑严格的正整数,所以gcdValue>=1
return False
else:
return True
print(plus_grand_prime_divisor(70))