Задача:
Разработайте программу, которая запрашивает у пользователя целое число и выводит все простые числа до этого числа. JavaScript.
План:
- Алгоритм решения
- Код программы
- Примеры входных данных и ожидаемых результатов
- Объяснение кода программы
- Блок-схема
Алгоритм решения:
-
Определение функции
isPrime(num)
:- Проверяет, является ли число простым
- Возвращает
false
, если число меньше или равно 1 - Проверяет делители от 2 до квадратного корня из числа
- Возвращает
false
, если найден делитель - Возвращает
true
, если делителей не найдено
-
Определение функции
printPrimes(limit)
:- Перебирает числа от 2 до заданного предела
- Вызывает
isPrime()
для каждого числа - Выводит число, если оно простое
-
Создание интерфейса для чтения ввода пользователя
-
Запрос ввода от пользователя:
- Преобразование ввода в целое число
- Проверка корректности ввода (число >= 2)
- Вывод сообщения об ошибке при некорректном вводе
-
Если ввод корректен:
- Вывод сообщения о диапазоне простых чисел
- Вызов функции
printPrimes()
с введенным числом
-
Закрытие интерфейса чтения
Код программы на языке JavaScript:
Код JavaScript
function isPrime(num) {
if (num <= 1) return false;
for (let i = 2; i <= Math.sqrt(num); i++) {
if (num % i === 0) return false;
}
return true;
}
function printPrimes(limit) {
for (let i = 2; i <= limit; i++) {
if (isPrime(i)) {
console.log(i);
}
}
}
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
readline.question('Enter a positive integer: ', (input) => {
const limit = parseInt(input);
if (isNaN(limit) || limit < 2) {
console.log('Invalid input. Please enter a positive integer greater than or equal to 2.');
} else {
console.log(`Prime numbers up to ${limit}:`);
printPrimes(limit);
}
readline.close();
});
Примеры входных данных и ожидаемых результатов:
Input: 10
Output:
Prime numbers up to 10:
2
3
5
7
Input: 20
Output:
Prime numbers up to 20:
2
3
5
7
11
13
17
19
Input: 1
Output:
Invalid input. Please enter a positive integer greater than or equal to 2.
Input: 0
Output:
Invalid input. Please enter a positive integer greater than or equal to 2.
Input: -5
Output:
Invalid input. Please enter a positive integer greater than or equal to 2.
Input: abc
Output:
Invalid input. Please enter a positive integer greater than or equal to 2.
Объяснение кода программы:
-
Функция
isPrime
:Эта функция проверяет, является ли число простым. Она возвращаетfunction isPrime(num) { if (num <= 1) return false; for (let i = 2; i <= Math.sqrt(num); i++) { if (num % i === 0) return false; } return true; }
false
для чисел меньше или равных 1, затем проверяет делители от 2 до квадратного корня числа. Если находится делитель, возвращаетсяfalse
, иначеtrue
. -
Функция
printPrimes
:Эта функция выводит все простые числа до заданного предела. Она перебирает числа от 2 доfunction printPrimes(limit) { for (let i = 2; i <= limit; i++) { if (isPrime(i)) { console.log(i); } } }
limit
, проверяя каждое на простоту с помощьюisPrime
и выводя простые числа. -
Создание интерфейса для чтения ввода:
Создается интерфейс для чтения пользовательского ввода из консоли.const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout });
-
Запрос ввода у пользователя:
Запрашивается ввод целого числа у пользователя.readline.question('Enter a positive integer: ', (input) => { // ... });
-
Обработка ввода и вывод результатов:
Введенное значение преобразуется в число. Если ввод некорректен, выводится сообщение об ошибке. Иначе вызывается функцияconst limit = parseInt(input); if (isNaN(limit) || limit < 2) { console.log('Invalid input. Please enter a positive integer greater than or equal to 2.'); } else { console.log(`Prime numbers up to ${limit}:`); printPrimes(limit); } readline.close();
printPrimes
для вывода простых чисел. Затем закрывается интерфейс чтения.