欧拉函数
欧拉函数q(n), 表示下于等于n中和n互质的数字个数。
根据定义可知:
①、若p为质数:q(p) = p - 1,特殊的:q(1) = 1
②、当p为质数:q() = - = (p - 1),因为所以不互质的数字为{xp|x[1, ]}
③、欧拉函数是积性函数(记住即可):
若gcd(a, b) = 1,则q(ab) = q(a)q(b)
当n为奇数时:q(2n) = q(n)
def enler_phi(n):
ans = n
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
ans = ans * (i - 1) // i
while n % i == 0:
n //= i
if n == 1:
break
if n > 1:
ans = ans * (n - 1) // n
return ans
print(enler_phi(97 ** 2), "=", 97 ** 2 - 97)