Вычисление Eulers Totient Function

Я пытаюсь найти эффективный способ вычислитьФункция Эйлера.

Что не так с этим кодом? Кажется, это не работает.

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)

Ответы на вопрос(7)

Ваш ответ на вопрос