Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вывод простых чисел (https://javascript.ru/forum/misc/61549-vyvod-prostykh-chisel.html)

Coriolan161 23.02.2016 16:28

Maine,
function printPrime(limit) {
	
	var	result = [2], // вот)
		isPrime = false,
		number = 3, //и вот)
		checkNumber = Math.floor(Math.sqrt(limit));
		console.log(checkNumber);
	
	for (number; number < limit; number+=2) {
		for (i = 2; i <= checkNumber; i++) {
			if(number%i == 0 && number != i) {
				isPrime = false;
				break;
			} else {
				isPrime = true;
			}
		}	
	
		if (isPrime) {
			result.push(number);
		}
	}

console.log(result);
	
}

Maine 23.02.2016 18:26

Coriolan161,
Да, действительно :)

рони 28.02.2016 12:38

Coriolan161,
может checkNumber формировать для каждого числа?

Coriolan161 28.02.2016 17:57

рони,
я изначально это и имел ввиду. На моё удивление код автора выдавал правильный result.
А так, конечно, корректней
function printPrime(limit) {
	var	result = [2],
		isPrime = false,
		number = 3,
		checkNumber;
	
	for (number; number < limit; number+=2) {
      checkNumber = Math.floor( Math.sqrt(number) );
		for (i = 2; i <= checkNumber; i++) {
			if(number%i == 0 && number != i) {
				isPrime = false;
				break;
			} else {
				isPrime = true;
			}
		}	
		if (isPrime) {
			result.push(number);
		}
	}

console.log(result);
}


Часовой пояс GMT +3, время: 03:35.