求助,程序逻辑看不太懂
能请各位帮我解释一下这个程序的数学原理吗 ?看不太懂。谢谢。程序的功能是找出最简分数的个数。
如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...
其中, 形如
for p in range(2, sqrt(n) + 1) while n % p == 0:
n //= p
...
是常见的因式分解算法。
回答:
搜索关键词"xx以内的所有质数", 完全是同一道题
以上是 求助,程序逻辑看不太懂 的全部内容, 来源链接: utcz.com/p/937701.html