Tôi đang cố gắng tìm một cách hiệu quả để tính toán Euler's totient function.Máy tính Eulers Chức năng hoàn hảo
Điều gì sai với mã này? Nó dường như không hoạt động.
def isPrime(a):
return not (a < 2 or any(a % i == 0 for i in range(2, int(a ** 0.5) + 1)))
def phi(n):
y = 1
for i in range(2,n+1):
if isPrime(i) is True and n % i == 0 is True:
y = y * (1 - 1/i)
else:
continue
return int(y)
'1/i' không làm những gì bạn nghĩ - hãy thử. – orlp
sử dụng python3 thay vì python2 :-) – 6502
Hoặc đặt 'từ __future__ bộ phận nhập' ở đầu mã của bạn để cho phép phân chia phao bằng Python 2. –