Javascript запросить у пользователя число и вывести все делители этого числа

alex-studentGB / gist:6a2371dd6da71b5d29f725e67abde1fc

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

function task_10()
// Задание 10: Игра «Угадай число». Предложить пользователю загадать число от 0 до 100 и отгадать
// его следующим способом: каждую итерацию цикла делите диапазон чисел пополам, записываете
// результат в N и спрашиваете у пользователя «Ваше число > N, < N или == N?". В зависимости
// от того, что указал пользователь, уменьшаете диапазон. Начальный диапазон от 0 до 100,
// поделили пополаи и получили 50. Если пользователь указал, что его число > 50, то изменили
// диапазон на от 51 до 100. И так до тех пор, пока пользователь не выберет == N.
alert(
‘Задание 10: Игра «Угадай число». Предложить пользователю загадать число от 0 до 100 и отгадать его следующим способом: каждую итерацию цикла делите диапазон чисел пополам, записываете результат в N и спрашиваете у пользователя «Ваше число > N, < N или == N?". В зависимости от того, что указал пользователь, уменьшаете диапазон. Начальный диапазон от 0 до 100, поделили пополаи и получили 50. Если пользователь указал, что его число >50, то изменили диапазон на от 51 до 100. И так до те пор, пока пользователь не выберет == N.’
);
alert(
«Что ж, давайте поиграем! Только честно и без мухлежа! Сейчас я вам предложу ввести целое число в диапазоне от 0 до 100. Потом я логическими вопросами буду отсекать ненужные числа и докажу, что угадаю ваше загаданное число не более чем за 7 попыток! Прошу не лукавить и не мухлевать!»
);
let N = 0;
do
N = Math.trunc(
+prompt(«Введите целое число в диапазоне от 0 до 100 включительно: «)
);
> while (N < 0 || N >100);
alert(`Итак, будем играться с числом $.`);
let counter = 0; // счётчик попыток угадать число
let low = 0; // нижняя граница диапазона разбиения
let middle = 0; // середина разбиения диапазона
let high = 100; // верхняя граница разбиения диапазона
let condition = «»; // отклик пользователя =, на предложенный вариант числа, пока что просто пустая строка
while (low <= high)
middle = Math.trunc((low + high) / 2);
condition = prompt(
`Вы загадали число $? Введите без кавычек «=», если это так. В противном случае, если искомое число меньше, введите «», если оно больше. Опять же, без кавычек.`
);
// это был отклик пользователя
if (condition != «=» && condition != «»)
alert(
«Вы вводите посторонние символы, я вас не понимаю! Будьте внимательнее!»
);
continue;
// здесь исключаем ввод опечаток
>
if (
(condition != «=» && middle == N) ||
(condition == »
(condition == «>» && middle > N) ||
(condition == «=» && middle != N)
)
alert(
`Кто-то мухлюет! Знак «$» здесь совсем неуместен! Попробуйте снова!`
);
continue;
> // здесь исключаем ложь в ответах
if (condition == «>»)
low = middle + 1;
> else if (condition == » <")
high = middle — 1;
> else
low = high + 1;
>
counter++;
>
alert(
`Итак, за $ попыток бинарным поиском мы установили, что вы загадали число $!`
);
>
task_10();
function task_9()
// Задание 9: Вывести таблицу умножения для всех чисел от 2 до 9. Каждое число необходимо умножить на числа от 1 до 10.
alert(
«Задание 9: Вывести таблицу умножения для всех чисел от 2 до 9. Каждое число необходимо умножить на числа от 1 до 10.»
);
let table = «»;
for (let i = 2; i <= 9; i++)
for (let j = 1; j <= 10; j++)
table += `$ x $ = ` + i * j + «, «;
>
>
alert(table);
>
task_9();
function task_8()
// Задание 8: Зациклить вывод дней недели таким образом:»День недели. Хотите увидеть следующий день?»
// и так до до тех пор, пока пользователь нажимает ОК.
alert(
‘Задание 8: Зациклить вывод дней недели таким образом:»День недели. Хотите увидеть следующий день?» и так до до тех пор, пока пользователь нажимает ОК.’
);
let arr_Week = [
«Понедельник»,
«Вторник»,
«Среда»,
«Четверг»,
«Пятница»,
«Суббота»,
«Воскресенье»,
];
let i = 0;
let stop = true;
while (stop == true)
stop = confirm(`$. Хотите увидеть следующий день недели?`);
i++;
if (i > 6)
i = 0;
>
>
alert(«Вывод дней недели окончен!»);
>
task_8();
function task_7()
// Задание 7_1: Запросить у пользователя число и на сколько цифр его сдвинуть. Сдвинуть цифры числа и вывести
// результат (если число 123456 сдвинуть на 2 цифры, то получится 345612).
alert(
«Задание 7_1: Запросить у пользователя число и на сколько цифр его сдвинуть. Сдвинуть цифры числа и вывести результат (если число 123456 сдвинуть на 2 цифры, то получится 345612).»
);
let base_number = prompt(«Введите число, которое будем трансформировать: «);
let jump = Math.abs(
Math.trunc(
+prompt(«Введите, на сколько позиций вы хотите произвести сдвиг: «)
)
);
let arr = base_number.split(«»);
jump = jump % arr.length; //если пользователь указал при сдвиге число больше длины строки
let leftJump_L = arr.slice(0, jump); //новая строка при сдвиге влево (левая половинка начальной, которая уедет в конец новой строки)
let leftJump_R = arr.slice(jump, arr.length); //новая строка при сдвиге влево (правая половинка начальной, которая уедет в начало новой строки)
alert(
`Сдвиг влево «$» на $ позиций: ` +
leftJump_R.concat(leftJump_L).join(«»)
); //объединяем 2 половины
let rightJump_L = arr.slice(0, arr.length — jump); //новая строка при сдвиге вправо (левая половинка начальной, которая уедет в конец новой строки)
let rightJump_R = arr.slice(arr.length — jump, arr.length); //новая строка при сдвиге вправо (правая половинка начальной, которая уедет в начало новой строки)
alert(
`Сдвиг вправо «$» на $ позиций: ` +
rightJump_R.concat(rightJump_L).join(«»)
); //объединяем 2 половины
>
task_7();
function task_7_2()
// Запросить у пользователя число и на сколько цифр его сдвинуть. Сдвинуть цифры числа и вывести
// результат (если число 123456 сдвинуть на 2 цифры, то получится 345612).
// Вариант 2: решим через циклы, а не массивы
alert(
«Задание 7_2: ВТОРОЙ ВАРИАНТ РЕШЕНИЯ ЗАДАЧИ МЕТОДОМ ЦИКЛОВ. Запросить у пользователя число и на сколько цифр его сдвинуть. Сдвинуть цифры числа и вывести результат (если число 123456 сдвинуть на 2 цифры, то получится 345612).»
);
let base_number = Math.abs(
Math.trunc(+prompt(«Введите число, которое будем трансформировать: «))
);
let jump = Math.abs(
Math.trunc(
+prompt(«Введите, на сколько позиций вы хотите произвести сдвиг: «)
)
);
let array = [];
let new_base_number = base_number;
while (base_number > 0)
array.unshift(base_number % 10);
base_number = Math.trunc(base_number / 10);
> // в этом цикле мы разбили число по разрядам, каждую цифру разряда числа вписали в массив
let new_jump = jump;
jump = jump % array.length; //если пользователь указал при сдвиге число больше длины строки
// с данного места приступаем к работе со сдвигом
let arrJumpLeft_L = [];
let arrJumpLeft_R = [];
let arrJumpRight_L = [];
let arrJumpRight_R = [];
for (let i = 0; i < array.length; i++)
if (i < jump)
arrJumpLeft_L[i] = array[i];
> else
arrJumpLeft_R[i] = array[i];
>
if (i < array.length - jump)
arrJumpRight_L[i] = array[i];
> else
arrJumpRight_R[i] = array[i];
>
>
alert(
`Сдвиг вправо «$» на $ позиции: ` +
arrJumpRight_R.concat(arrJumpRight_L).join(«»)
); //объединяем 2 половины
alert(
`Сдвиг влево «$» на $ позиции: ` +
arrJumpLeft_R.concat(arrJumpLeft_L).join(«»)
); //объединяем 2 половины
>
task_7_2();
function task_6()
// Зациклить калькулятор. Запросить у пользователя 2 числа и знак, решить пример, вывести результат и спросить,
//хочет ли он решить еще один пример. И так до тех пор, пока пользователь не откажется.
alert(
«Задание 6: Зациклить калькулятор. Запросить у пользователя 2 числа и знак, решить пример, вывести результат и спросить, хочет ли он решить еще один пример. И так до тех пор, пока пользователь не откажется.»
);
let numberA = 0;
let numberB = 0;
let result = true;
let action_sign = «»;
do
numberA = +prompt(«Введите первое число: «);
numberB = +prompt(«Введите второе число: «);
action_sign = prompt(«Введите знак операции (*, /, + либо -): «);
switch (action_sign)
case «+»:
alert(
`$ $ $ = $`
);
break;
case «-«:
alert(
`$ $ $ = $`
);
break;
case «*»:
alert(
`$ $ $ = $`
);
break;
case «/»:
alert(
`$ $ $ = $`
);
break;
default:
alert(`Вы не ввели знак математической операции!`);
break;
>
result = confirm(«Хотите выполнить еще одну математическую операцию?»);
> while (result == true);
>
task_6();
function task_5()
// Задание 5: Запросить у пользователя 10 чисел и подсчитать, сколько он ввел положительных,
// отрицательных и нулей. При этом также подсчитать, сколько четных и нечетных. Вывести
// статистику на экран. Учтите, что достаточно одной переменной (не 10) для ввода
// чисел пользователем.
alert(
«Задание 5: Запросить у пользователя 10 чисел и подсчитать, сколько он ввел положительных, отрицательных и нулей. При этом также подсчитать, сколько четных и нечетных. Вывести статистику на экран. Учтите, что достаточно одной переменной (не 10) для ввода чисел пользователем.»
);
let n = 0;
let positive_number = 0;
let negative_number = 0;
let null_number = 0;
let even_number = 0;
let odd_number = 0;
for (let i = 0; i < 10; i++)
n = +prompt(«Введите число: «);
if (n > 0)
positive_number += 1;
> else if (n < 0)
negative_number += 1;
> else
null_number += 1;
>
!(n % 2) ? (even_number += 1) : (odd_number += 1);
>
alert(
`Из 10 введеных вами чисел $ положительных, $ отрицательных, $ равных нулю, $ четных и $ нечетных.`
);
>
task_5();
function task_4()
// Задание 4: Определить количество чисел в введенном числе.
alert(«Задание 4: Определить количество чисел в введенном числе.»);
let n = Math.abs(+prompt(«Введите число: «));
let counter = 0;
while (n > 0)
n = Math.trunc(n / 10);
counter++;
>
alert(`В введенном вами числе (в его целой части) $ цифр.`);
>
task_4();
function task_3()
// Задание 3: Запросить у пользователя число и вывести все делители этого числа.
alert(
«Задание 3: Запросить у пользователя число и вывести все делители этого числа.»
);
let n = +prompt(«Введите число: «);
let new_n = Math.abs(n);
let divisors = «»;
let i = 1;
do
if (new_n % i == 0)
divisors += i + «,»;
>
i++;
> while (i
alert(`У числа $ следующие делители: $`);
>
task_3();
function task_2()
// Задание 2: Запросить у пользователя 2 числа и найти только наибольший общий делитель.
alert(
«Задание 2: Запросить у пользователя число и вывести все делители этого числа.»
);
let n = +prompt(«Введите первое число: «);
let m = +prompt(«Введите второе число: «);
let new_n = Math.abs(n);
let new_m = Math.abs(m);
let max_divisor = 1;
let i = 1;
while (i <= new_n && i <= new_m)
if (new_n % i == 0 && new_m % i == 0)
max_divisor = i;
>
i++;
>
alert(`У чисел $ и $ наибольший общий делитель: $`);
>
task_2();
function task_1()
// Задание 1: Подсчитать сумму всех чисел в заданном пользователем диапазоне.
alert(
«Задание 1: Подсчитать сумму всех чисел в заданном пользователем диапазоне.»
);
let a = Math.trunc(
+prompt(«Задайте целое число, которое будет началом диапазона: «)
);
let a1 = a;
let b;
do
b = Math.trunc(
+prompt(«Задайте целое число, которое будет концом диапазона: «)
);
> while (a >= b);
let summa = 0;
while (a <= b)
summa += a;
a++;
>
alert(`В диапазоне от $ до $ включительно сумма всех чисел составляет: $.`);
>
task_1();

Источник

Циклы JS

    Подсчитать сумму всех чисел в заданном пользователем диапазоне.

let num1 = Number(prompt('Для подсчета суммы чисел в заданном диапазоне введите начальную цифру диапазона')); let num2 = Number(prompt('Введите конечную цифру')); let sum = 0; if (num1 < num2) < while (num1 ; > else if (num1 > num2) < while (num1 >= num2) < sum += num2; num2++; >; >; alert(`Сумма всех чисел в указанном диапазоне $`);
let number1 = Number(prompt('Для нахождения НОД двух чисел введите первую цифру')); let number2 = Number(prompt('Введите вторую цифру')); while (number1 != 0 && number2 != 0) < if (number1 >number2) < number1 = number1 % number2; >else < number2 = number2 % number1; >; >; alert(` Наибольший общий делитель двух указанных чисел равен $`);
let number = Number(prompt(' Введите число')); let divisor = []; for (let i = 2; i < number; i++) < if (number % i == 0 && number !== 1 ) < console.log(i); divisor.push(i); >; >; alert(`Все делители числа $: $`);
let userNumber = prompt(' Введите число'); let count = 0; for (let i = 0; i < userNumber.length; i++) < count += 1; >; alert(` Число состоит из $ цифр`);
let positive = 0; let negative = 0; let zero = 0; let even = 0; let odd = 0; for (let i = 1; i 0) < positive++; >; if (num < 0) < negative++; >; if (num == 0) < zero++; >; if (num % 2 == 0) < even++; >; if (num % 2 !== 0) < odd++; >; >; alert(` Из введенных цифр - положительных: $, отрицательных: $, нулей: $, четных: $, нечетных: $.`)
do < let firstNumber = prompt(' Введите первое число'); let secondNumber = prompt(' Введите второе число'); let operator = prompt(' Введите математический оператор', '+, -, *, /') let answer = eval(`$$ $`); alert(`Ответ $`); > while (confirm(' Решить еще один пример?'));
do < let q = prompt(' Введите число', '1234567890'); let move = Number( prompt(' На сколько цифр сдвинуть?') ); alert(q.slice(move) + q.slice(0, move)); >while (confirm(' Еще одно число ?'));
const days = ["понедельник", "вторник", "среда", "четверг", "пятница", "суббота", "воскресенье"]; let currentDay = 0; let nextDay; do < alert(`День недели - $.`); nextDay = confirm(' Хотите увидеть следующий день?'); currentDay++; if (currentDay === days.length) < currentDay = 0; >; > while (nextDay);
let tables = []; for (let i = 2; i :\n`); for (let j = 1; j * $ = $; `); >; >; alert(tables.join('')); console.log(tables.join(''));
let guessedNum = Number(alert("Загадайте число от 1 до 100")); let lowerLimit = 0; let upperLimit = 100; let N = 50; while (guessedNum !== N ) < let answer = prompt(`Ваше число >, `, '>, ') < lowerLimit = N; N = Math.ceil((upperLimit - lowerLimit) / 2 + lowerLimit); >else if (answer == ' <') < upperLimit = N; N = Math.ceil((upperLimit - lowerLimit) / 2 + lowerLimit); >else < break; >; >; alert(`Задуманное число $`);

Источник

Читайте также:  Runtime constant pool java
Оцените статью