relatively fast totient function