能请各位帮我解释一下这个程序的数学原理吗 ?看不太懂。谢谢。程序的功能是找出最简分数的个数。
如n = 15,找出分母为15且分子小于15的最简分数有8个 1/15, 2/15, 4/15, 7/15, 8/15, 11/15, 13/15, 14/15
比如在返回值之前做的运算是10-2=8,其中的10和2分别表示什么含义呢?
再次感谢!!
def proper_fractions(n):
phi = n > 1 and n
for p in range(2, int(n ** .5) + 1):
if not n % p:
phi -= phi // p
while not n % p:
n //= p
if n > 1:
phi -= phi // n
return phi
这题本质上是求欧拉函数的值,请参考 https://zh.wikipedia.org/wiki...
其中, 形如
是常见的因式分解算法。