Я попробовал одну практику и проверил требования ниже.
Вы идете искать подарки. Все подарки лежат на вашем пути по прямой линии в расцвете сил числа и ваш дом находится в 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">
Это реальная проблема, та же логика, которую мне нужно включить в свой проект, а также я просто спрашиваю, что я пропустил, я никогда не прошу предоставить код.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я понял ваше требование, вы правильно попробовали 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
}
Сделай мою домашнюю работу вроде вопроса