Умные решения для умных людей

Задача:

Разработайте программу, которая запрашивает у пользователя целое число и выводит все простые числа до этого числа. JavaScript.

План:

  • Алгоритм решения
  • Код программы
  • Примеры входных данных и ожидаемых результатов
  • Объяснение кода программы
  • Блок-схема

Алгоритм решения:

  1. Определение функции isPrime(num):

    • Проверяет, является ли число простым
    • Возвращает false, если число меньше или равно 1
    • Проверяет делители от 2 до квадратного корня из числа
    • Возвращает false, если найден делитель
    • Возвращает true, если делителей не найдено
  2. Определение функции printPrimes(limit):

    • Перебирает числа от 2 до заданного предела
    • Вызывает isPrime() для каждого числа
    • Выводит число, если оно простое
  3. Создание интерфейса для чтения ввода пользователя

  4. Запрос ввода от пользователя:

    • Преобразование ввода в целое число
    • Проверка корректности ввода (число >= 2)
    • Вывод сообщения об ошибке при некорректном вводе
  5. Если ввод корректен:

    • Вывод сообщения о диапазоне простых чисел
    • Вызов функции printPrimes() с введенным числом
  6. Закрытие интерфейса чтения

Код программы на языке 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.

Объяснение кода программы:

  1. Функция 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.

  2. Функция printPrimes:

    function printPrimes(limit) {
      for (let i = 2; i <= limit; i++) {
        if (isPrime(i)) {
          console.log(i);
        }
      }
    }
    Эта функция выводит все простые числа до заданного предела. Она перебирает числа от 2 до limit, проверяя каждое на простоту с помощью isPrime и выводя простые числа.

  3. Создание интерфейса для чтения ввода:

    const readline = require('readline').createInterface({
      input: process.stdin,
      output: process.stdout
    });
    Создается интерфейс для чтения пользовательского ввода из консоли.

  4. Запрос ввода у пользователя:

    readline.question('Enter a positive integer: ', (input) => {
      // ...
    });
    Запрашивается ввод целого числа у пользователя.

  5. Обработка ввода и вывод результатов:

      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 для вывода простых чисел. Затем закрывается интерфейс чтения.

Блок-схема:

Нажмите на изображение, чтобы увеличить

Блок-схема к задаче: Разработайте программу, которая запрашивает у пользователя целое число и выводит все простые числа до этого числа.

Личный кабинет

  1. Приоритетная обработка
    Запросы от пользователей личного кабинета обрабатываются в первую очередь
  2. Бонус за регистрацию
    Стартовый бонус на счёт личного кабинета (~20 запросов), без регистрации - 3 запроса
  3. Все передовые нейросети
    В личном кабинете представлен широкий выбор нейросетей (20+).
  4. Генерация реалистичных изображений
    Midjourney 6.0, Stable Diffusion XL, Dall-E 3, Playground v2.5, Flux.1 Schnell, Flux.1 Dev, Flux.1 Pro, Flux.1.1 Pro, Kolors, Recraft v3, GPT Image 1 (low), GPT Image 1 (medium), GPT Image 1 (high)
  5. Создание музыки
    Нейросеть Suno создает музыку на основе вашего текста
  6. Нет ограничения на количество символов
    Без регистрации вы можете отправить запрос не более 1000 символов
  7. Работа с файлами
    Поддержка всех популярных форматов: pdf, excel, word, powerpoint, odt, c, js, php, py, html, sql, xml, yaml, markdown, txt, json, csv, png, jpeg и другие
Зарегистрироваться
Личный кабинет smartbuddy.ru