1 ... 3000
и заполните словарь, посчитав сумму делителей для каждого по одному разу.{1: [1, 2, 3, 5, 7, 11, 13, ... ], ... }
Из этого массива нужно все возможные пары повытаскивать: [1, 2], [1, 3], [1, 5], ..., [2, 3], [2, 5], ...
undefined
, то это значение пропускается.occupiedBy
JSON.stringify()
— добро пожаловать. function testCycle(n) {
// var x = ""; // зачем нам текст
let x = 0; // число!
// for (i = 1; i <= n; i++){ // но надо до 2n–1 с шагом 2
for (i = 1; i <= (2 * n - 1); i += 2) {
// x += (2*i-1) + " "
x += i;
console.log(i, x);
}
return x;
}
testCycle(6) /*
1 1
3 4
5 9
7 16
9 25
11 36
36
*/
function testCycle(n) {
let result = 0;
for (let i = 1; i <= n; i++) {
result += 2 * i - 1;
console.log(i, result);
}
return result;
}
postMessage()
, а слушать оно должно само. В обратную сторону, наоборот: вы слушаете события message
на своём окне, и надеетесь, что Amo отправит вам (на window.opener
) какое-то сообщение.mode=post_message
и ждать сообщения на своём окне. локальный сервер, моментальное обновление картинки с изменением кода
const datetime = '2022-05-09T17:00:32.448Z';
const dateString = datetime.substring(0, 10); // '2022-05-09'
const timeString = datetime.substring(11, 16); // '17:00'
const el = document.querySelector('.coolUpdates');
const observer = new MutationObserver(list => {
list.forEach(mutation => {
mutation.addedNodes.forEach(node => {
if (node.textContent === 'Обновление : добавили черный цвет') {
console.log('Оп! Момент настал!');
}
})
});
});
observer.observe(el, { childList: true });
const liked = new Set();
// ловить вообще все клики
document.addEventListener('click', e => {
const el = e.target;
if (!el.classList.contains('click')) return; // неинтересный клик
if (liked.has(el)) { // уже выбран этот?
liked.delete(el); // удалить
} else {
liked.add(el); // добавить
}
// пора показать что-нибудь
document.querySelector('span.text').innerText = liked.size; // счётчик
// список выбранных
document.querySelector('span.list').innerText = [...liked.values()]
.map(({innerText: t}) => t)
.join(', ');
});
const sourceElement = document.querySelector('.GrandMuther');
// во что заворачивать
const wrapper = document.createElement('div');
wrapper.classList.add('Mother');
Array.from(sourceElement.children)
.forEach(el => wrapper.appendChild(el));
sourceElement.appendChild(wrapper);
// «функция(не важно, сколько раз)»
const readBook = () => console.log('A B C');
// кнопка, которую много раз
const btnRead = document.getElementById('btn-read-book');
btnRead.addEventListener('click', readBook);
// другая кнопка, которая всё.
document.getElementById('btn-lights-out')
.addEventListener(
'click',
() => btnRead.removeEventListener('click', readBook)
);
// если это не сайт барбершопа, лучше обращаться к клиенту на «Вы»
let x = prompt('введи число', '')
let n = prompt('введи степень', '')
// не забывайте, что prompt() всегда возвращает строку, а не число
if (n < 0) {
// сообщение вывели, но выполнять всё равно продолжили
alert('степень должна быть больше нуля')
}
// переизобрели встроенную функцию Math.pow()
function pow(x, n) {
return x ** n; // возвели в степень 1-й раз
}
let result = x ** n // возвели в степень 2-й раз
alert(result)
// напоследок таки функцию вызывали, но результат — вникуда
pow(x, n);