0072 分数计数
* * * *
拉格朗日计划
* * * *
分数计数

考虑形如$n/d$的分数,其中n和d均为正整数。若$n < d$且其最大公约数为1,则称该分数为最简真分数。

所有$d\le 8$的最简真分数组成的集合中的元素为 $$1/8, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, 3/8, 2/5, 3/7, 1/2, 4/7, 3/5, 5/8, 2/3, 5/7, 3/4, 4/5, 5/6, 6/7, 7/8$$ 可以看出该集合共有21个元素。

所有$d\le 10^6$的最简真分数组成的集合中共有多少个元素?

本题难度:



解答

即求$\sum\limits_{n=2}^{10^6}\varphi(n)$,其中$\varphi$是欧拉函数,用与第70题类似的代码即得结果$303963552391$。

target=10**6+1

d=[[] if i%2 else [2] for i in range(target)]
s,n=1,3
while n < target:
    if d[n]:
        m=n
        for k in d[n]:
            m=m*(k-1)/k
        s+=m
    else:
        for k in range(n,target,n):
            d[k].append(n)
        s=s+n-1
    n+=1

print s