Рассчитать ближайшую позицию подарка с помощью javascript

Я попробовал одну практику и проверил требования ниже.

Вы идете искать подарки. Все подарки лежат на вашем пути по прямой линии в расцвете сил числа и ваш дом находится в 0. Учитывая ваше текущее положение, найдите ближайший к нему подарок и рассчитайте расстояние между вашим текущим положением и подарком и укажите расстояние. Бывший: Для входа 0 на выходе будет 2 Для number = 11 вывод должен быть 0 Для number = 2000000000 на выходе должно быть 11. Для number = 1800000001 на выходе должно быть 10

Для приведенной выше логики я попытался использовать javascript и почти закончил, но я не получаю надлежащего вывода в соответствии с требованиями, мой вывод возвращает любое число.

Javascript

function isPrime(num) {
    if (num <= 1) {
        return false;
    } else if (num <= 3) {
        return true
    } else if (num % 2 === 0 || num % 3 === 0) {
        return false
    }

    let i = 5
    while (i * i <= num) {
        if (num % i === 0 || num % (i + 2) === 0) {
            return false
        }
        i += 6
    }
    return true
}

HTML

    <h1> Gift House</h1>
    <label for = "name">Enter a house Number</label>
    <input type = "text" id = "inp" class = "clr" />
    <input type = "button" id = "checker" value = "Calculate" onClick = "findpos()">
    <label for = "name"> Distance of the gift house</label>
    <input type = "text" id = "demo" value = "" class = "clr">

Сделай мою домашнюю работу вроде вопроса

Flash 29.09.2018 09:02

Это реальная проблема, та же логика, которую мне нужно включить в свой проект, а также я просто спрашиваю, что я пропустил, я никогда не прошу предоставить код.

Deepti 29.09.2018 09:05
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
562
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я понял ваше требование, вы правильно попробовали 2 шага, но перед этими двумя шагами вам нужно выполнить еще одну логику для вычисления простого числа. Потому что вы вызвали функцию isPrime в своем JS, но где вы определили функцию?

Просто включите приведенный ниже скрипт в свой JS-код и проверьте результат.

function findpos() {
    var num = document.getElementById("inp").value;
    var pos = 0;
    while (true) {
        if (isPrime(num)) {
            break;
        } else {
            pos++;
            num++;
        }
    }
    document.getElementById("demo").value = pos;
}

Где функция isPrime? как вы вызывали без определения функции. Я думаю, что это причина вашей проблемы.

Посмотрите мой пример ниже,

function findpos() {
    var num = document.getElementById("inp").value;
    var pos = 0;
    while (true) {
        if (isPrime(num)) {
            break;
        } else {
            pos++;
            num++;
        }
    }
    document.getElementById("demo").value = pos;
}
function isPrime(num) {
    if (num <= 1) {
        return false;
    } else if (num <= 3) {
        return true
    } else if (num % 2 === 0 || num % 3 === 0) {
        return false
    }

    let i = 5
    while (i * i <= num) {
        if (num % i === 0 || num % (i + 2) === 0) {
            return false
        }
        i += 6
    }
    return true
}

Другие вопросы по теме