对正整数 n,函数 φ(n)\varphi \left( n\right)定义为:小于等于 n 正整数中与 n 互质的正整数的数目。如: φ(12)\varphi \left( 12\right)=4 ,因
为 1,5,7,11 均和 12 互质。则 φ(500)\varphi \left( 500\right)=

1、

#互质 最大公因数为1
def fun(n):
    c=0
    for i in range(1,n+1):
        for j in range(2,n+1):
            if i%j==0 and n%j==0:
                break
            if j==n:
                c+=1


    return c
print(fun(500))

2、

#辗转相除法算最大公因数 欧几里得算法
def gac(p,q):
    if q==0:
        return p
    else:
        return gac(q,p%q)
# print(gac(255,55))
def fun(n):
    c=0
    for i in range(1,n+1):
        if gac(i,500)==1:
                c+=1
    return c
print(fun(500))

单论此题 第一种更高效。

posted on 2020-01-31 21:27  小肥鱼~  阅读(77)  评论(0)    收藏  举报