Я намереваюсь найти самый большой простой коэффициент числа n в Javascript. Тем не менее, я думаю, что этот код замедляется или может быть отсортирован, но я не вижу, как это сделать. Суть заключается в отображении последнего элемента массива факторов, что будет самым большим фактором. У кого-нибудь есть подсказки о том, как я мог бы сократить это? Проблема в том, что мой браузер уведомляет меня, что страница слишком долго реагирует на 12-значное число. Должен ли я, возможно, не использовать массив?Как сделать мой код менее медленным (JavaScript) - наибольший простой коэффициент
function biggest(n) {
// Makes a list of primes smaller than n
var primes = [2];
for (i=3; i < n ; i++) {
var j=0;
while (j<primes.length)
{ var quotient = i/primes[j];
if (quotient !== Math.floor(quotient))
{var hasDivisor = false;
j++;
}
else
{var hasDivisor = true;
j=primes.length+1;
}
}
if (hasDivisor == false)
{primes.push(i);}
}
// Makes a list of factors
var factors = [];
for (i=0; i<primes.length; i++) {
var quotient = n/primes[i];
if (quotient==Math.floor(quotient)) {
factors.push(primes[i]);}
}
if (factors.length==0) {
factors.push(1);
}
items.push("De biggest factor is "+ factors[factors.length-1] +"!");
}
Вам нужно всего лишь петли до n/2, и вы можете использовать i + 2 вместо i ++, чтобы перебирать только нечетные числа. –
Спасибо за подсказку i + = 2, петля до n/2 где? первая часть кода - найти простые числа, не обязательно простые числа, делящие n. – wowlolbrommer