A frugal number is a number whose number of digits is strictly greater than the number of digits in its prime factorization (including exponents). If the exponent is 1 for a certain prime, involved in the prime factorization, then that exponent does not contribute to the number of digits in the prime factorization.
function countDigits(n)
{
var temp = n;
var c = 0;
while(temp != 0)
{
temp = parseInt(temp / 10);
c++;
}
return c;
}
function frugal(n)
{
var prime = seive(n);
var r = [];
for(var i = 2; i < n; i++)
if(prime[i] === 1) r.push(i);
var t = n;
var s = 0;
for(var i = 0; i < r.length; i++)
{
if (t % r[i] == 0)
{
var k = 0;
while (t % r[i] === 0)
{
t = parseInt(t / r[i]);
k++;
}
if (k === 1)
s = s + countDigits(r[i]);
else if (k != 1)
s = s + countDigits(r[i]) + countDigits(k);
}
}
return (countDigits(n) > s && s != 0);
}