![]() |
VOOZH | about |
Given an integer n, find the value of Euler's Totient Function, denoted as Ξ¦(n). The function Ξ¦(n) represents the count of positive integers less than or equal to n that are relatively prime to n.
Euler's Totient function Ξ¦(n) for an input n is the count of numbers in {1, 2, 3, ..., n-1} that are relatively prime to n, i.e., the numbers whose GCD (Greatest Common Divisor) with n is 1.
If n is a positive integer and its prime factorization is;
Where β are distinct prime factors of n, then:
.
Examples:
Input: n = 11
Output: 10
Explanation: From 1 to 11, 1,2,3,4,5,6,7,8,9,10 are relatively prime to 11.Input: n = 16
Output: 8
Explanation: From 1 to 16, 1,3,5,7,9,11,13,15 are relatively prime to 16.
Table of Content
A simple solution is to iterate through all numbers from 1 to n-1 and count numbers with gcd with n as 1. Below is the implementation of the simple method to compute Euler's Totient function for an input integer n.
10
Time Complexity: O(n log n)
Auxiliary Space: O(log min(a,b)) where a,b are the parameters of gcd function.
The idea is based on Euler's product formula which states that the value of totient functions is below the product overall prime factors p of n.
1) Initialize result as n
2) Consider every number 'p' (where 'p' varies from 2 to Ξ¦(n)).
If p divides n, then do following
a) Subtract all multiples of p from 1 to n [all multiples of p
will have gcd more than 1 (at least p) with n]
b) Update n by repeatedly dividing it by p.
3) If the reduced n is more than 1, then remove all multiples
of n from result.
10
Time Complexity: O(βn)
Auxiliary Space: O(1)
1) For a prime number p,
Proof :
, where p is any prime number
We know that where k is any random number and
Total number from 1 to p = p
Number for which is , i.e the number p itself, so subtracting 1 from p
Examples :
.
2) For two prime numbers a and b, used in RSA Algorithm
Proof :
Let a and b be distinct primes.
Then:
- Ο(a)=aβ1, Ο(b)=bβ1
Total numbers from 1 to ab:βab
Multiples of a:βb numbers
Multiples of b:βa numbers
Common multiple (i.e., double-counted):βonly abSo, numbers not coprime to ab:
a+bβ1
Then,
Ο(ab) = ab β (a + b β 1) = ab β a β b + 1 = (aβ1)(bβ1)
Hence,
Ο(ab) = Ο(a)* Ο(b)
Examples :
3) For a prime number p and integer k β₯ 1:
Ο(pk) = pkβpkβ1
Proof :
, where p is a prime numberTotal numbers from 1 to Total multiples of
Removing these multiples as with them
Examples :
p = 2, k = 5, = 32
Multiples of 2 (as with them ) = 32 / 2 = 16.
4) Special Case : gcd(a, b) = 1
.
Examples :
Special Case:
,
Normal Case:
, .
5) Sum of values of totient functions of all divisors of n is equal to n.
Example :
n = 6 , factors = {1, 2, 3, 6}
n = = 1 + 1 + 2 + 2 = 6
6) The most famous and important feature is expressed in Euler's theorem :
The theorem states that if n and a are coprime
(or relatively prime) positive integers, then
aΦ(n) Φ 1 (mod n)
The RSA cryptosystem is based on this theorem:
In the particular case when m is prime say p, Euler's theorem turns into the so-called Fermat's little theorem :
ap-1 Ξ¦ 1 (mod p)
Related Article:
Eulerβs Totient function for all numbers smaller than or equal to n
Optimized Euler Totient Function for Multiple Evaluations