UNPKG

mathball

Version:

A JavaScript library for Competitive Programming

31 lines (24 loc) 525 B
'use strict'; /* count of numbers having gcd 1 till num * Function: phi() */ var validate = require('../validation/non-negative-integer'); function phi(num) { var result = num; for (var i = 3; i <= Math.sqrt(num); i = i + 1) { if (num % i == 0) { while (num % i == 0) { num = num / i; } result = result - result / i; } } if (num > 1) { result = result - result / num; } return result; } module.exports = function (num) { validate(num, 'phi'); return phi(num); };