с помощью js нужно найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно N, N вводим сами
В моем коде, получается, мы добавляем к счетчику +1, когда находим его делитель и должно выводиться по итогу само число, у которого N делителей, но у меня выводится почему-то только число 200... В чем может быть проблема?
function vtoroe()
{
var countt;
var temp;
var N = document.getElementById("N").value; //считывание N
for (var i = 1; i<=200; i++)
{
temp=0;
countt = 0;
for (var j = 1; j<=200; j++)
{
if (i%j == 0 ) //проверка на делимость числа без остатка
{
countt++;
}
if (countt == N)
{
temp=i;
document.getElementById('otvet2').value=temp+', '; //вывод числа, если его счетчик равен N
}
}
}
}
ваша проблема в том, что вы недосчитываете делители до конца и уже делаете какие-то выводы, т.е. у числа может быть больше N делителей, но вы уже на N делителях начинаете что-то считать
вместо
for (var j = 1; j<=200; j++)
{
if (i%j == 0 ) //проверка на делимость числа без остатка
{
countt++;
}
if (countt == N)
{
temp=i;
document.getElementById('otvet2').value=temp+', '; //вывод числа, если его счетчик равен N
}
}
надо бы
for (var j = 1; j<=200; j++)
{
if (i%j == 0 ) //проверка на делимость числа без остатка
{
countt++;
}
}
if (countt == N)
{
temp=i;
document.getElementById('otvet2').value=temp+', '; //вывод числа, если его счетчик равен N
}
кроме того, почему бы вам сначала не найти все делители и занести их в массив, а уже потом вывести в том или ином виде
let arr = [];
for (let i = 1; i <= 200; j ++)
{
for (let j = 1; j<=200; j++)
{
if (i % j == 0 ) //проверка на делимость числа без остатка
{
countt++;
}
}
if (countt == N)
{
arr.push(i);
}
}
const str = arr.join(', ');
document.querySelector('#otvet2').value = str;
document.getElementById('otvet2').value = document.getElementById('otvet2').value + temp + ', ';
let count = 0;
for (let i = 1; i <= 200; i++) {
for (let j = 1; j <= 200; j++) {
if (i % j == 0) {
count++;
}
}
}
console.log('count: ', count);
document.getElementById('otvet2').value=temp+', ';
К примеру здесь правильные ответы это 50
, 100
и 200
и происходит следующие
temp = 50
value = temp + ", " = "50, "
temp = 100
value = temp + ", " = "100, "
temp = 200
value = temp = ", " = "200, "
то есть у вас value
не дополняется а полностью заменяется
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем привет! У меня есть массив с объектами (data), также есть функция, которая выводить разметку и элементами из объектов внутри массиваМне...
В расширении для Chrome я пытаюсь загрузить некоторый скрипт с помощью XMLHttpRequest, но получаю следующую ошибку:
Я получаю API от сторонних сервисов на PHP, процесс занимает некоторое времяМетод получения API вызывается AJAX запросом из вьюшки