Простые числа
Вложений: 1
Привет! Кто может объяснить, почему limit становится undefined? Это происходит во время второй итерации во внешнем цикле
|
Maine, потому что Вы явно присваиваете ему undefined.
|
Maine,
а код не судьба вставить вместо картинки? Цитата:
|
function PrimeNumbers(limit) { var result = [2]; var max = Math.floor(Math.sqrt(limit)); var number = 3; var isPrime = false; for (number; number <= limit; number+=2) { for (var c = 2; c < number; c++) { if (number%c == 0) { isPrime = false; break; } else { isPrime = true; } } if(isPrime) { result.push(number); } return result; } } console.log(PrimeNumbers(100)); |
Цитата:
|
Возможно это из-за других ошибок:
1) строка 8: for(number; number <= limit; number+=2) { вместо этого напишите: for(number = 3; number <= limit; number+=2) { 2) строка 3: var result = [2]; просто написать: var result = 2; |
Maine,
Что-то я не вижу никаких undefined. Все работает. function PrimeNumbers(limit) { var result = [2]; var max = Math.floor(Math.sqrt(limit)); var number = 3; var isPrime = false; for (number; number <= limit; number+=2) { for (var c = 2; c < number; c++) { if (number%c == 0) { isPrime = false; break; } else { isPrime = true; } } if(isPrime) { result.push(number); } return result; } } alert(PrimeNumbers(100)); |
Цитата:
|
Maine,
Результат получается в соответствии с вашим кодом: В строке 3 первый result var result = [2]; В строке 20 - второй result.push(number); |
Maine,
Одно маааленькое изменение в вашем коде function PrimeNumbers(limit) { var result = [2]; var max = Math.floor(Math.sqrt(limit)); var number = 3; var isPrime = false; for (number; number <= limit; number+=2) { for (var c = 2; c < number; c++) { if (number%c == 0) { isPrime = false; break; } else { isPrime = true; } } if(isPrime) { result.push(number); } } return result; } alert(PrimeNumbers(100)); |
Часовой пояс GMT +3, время: 04:46. |