diff --git a/Maths/EulersTotientFunction.js b/Maths/EulersTotientFunction.js index ca8bafc0e..338154d4e 100644 --- a/Maths/EulersTotientFunction.js +++ b/Maths/EulersTotientFunction.js @@ -8,21 +8,21 @@ prime to n, i.e., the numbers whose GCD (Greatest Common Divisor) with n is 1. */ -const gcd_two_numbers = (x, y) => { - // x is smaller than y - // let gcd of x and y is gcdXY - // so it devides x and y completely - // so gcdXY should also devides y%x (y = gcdXY*a and x = gcdXY*b and y%x = y - x*k so y%x = gcdXY(a - b*k)) - // and gcd(x,y) is equals to gcd(y%x , x) - return x == 0 ? y : gcd_two_numbers(y%x , x); +const gcdOfTwoNumbers = (x, y) => { + // x is smaller than y + // let gcd of x and y is gcdXY + // so it devides x and y completely + // so gcdXY should also devides y%x (y = gcdXY*a and x = gcdXY*b and y%x = y - x*k so y%x = gcdXY(a - b*k)) + // and gcd(x,y) is equals to gcd(y%x , x) + return x === 0 ? y : gcdOfTwoNumbers(y % x, x) } -const EulersTotientFunction = (n) => { - let countOfRelativelyPrimeNumbers = 1; - for(let iterator = 2; iterator<=n; iterator++) - if(gcd_two_numbers(iterator , n) == 1)countOfRelativelyPrimeNumbers++; - - return countOfRelativelyPrimeNumbers; +const eulersTotientFunction = (n) => { + let countOfRelativelyPrimeNumbers = 1 + for (let iterator = 2; iterator <= n; iterator++){ + if (gcdOfTwoNumbers(iterator, n) === 1)countOfRelativelyPrimeNumbers++ + } + return countOfRelativelyPrimeNumbers } -export {EulersTotientFunction} +export { eulersTotientFunction } diff --git a/Maths/test/EulersTotientFunction.test.js b/Maths/test/EulersTotientFunction.test.js index d58d57c4b..2b8d6c475 100644 --- a/Maths/test/EulersTotientFunction.test.js +++ b/Maths/test/EulersTotientFunction.test.js @@ -1,11 +1,11 @@ -import { EulersTotientFunction } from '../EulersTotientFunction'; +import { eulersTotientFunction } from '../EulersTotientFunction' describe('eulersTotientFunction', () => { it('is a function', () => { - expect(typeof EulersTotientFunction).toEqual('function') + expect(typeof eulersTotientFunction).toEqual('function') }) it('should return the phi of a given number', () => { - const phiOfNumber = EulersTotientFunction(10) + const phiOfNumber = eulersTotientFunction(10) expect(phiOfNumber).toBe(4) }) })