Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 1 год назад.
Пытаюсь решить уже часа два, помогите: 1. Найти натуральное число из интервала от а до b, у которого количество делителей максимальна. Если таких чисел несколько, то должно быть найдено максимальное из них. 2. Дано натуральное число. Найти числа, образованные из исходного приписыванием к нему такого же числа. Буду благодарен за решение на js.
Аффтару: Ответ написан из-за интереса в комментариях. Обычно не принято отвечать на вопросы "сделайте за меня" )
Решение первой задачи: Из интервала, нахождение числа с максимальным количеством делителей.
console.log( maxDividersFromRange(1, 100) );
function maxDividersFromRange(a, b){
let max = findDividers(a).length; // Сразу находим кол-во делителей первого числа
// Изначально считаем его самым большим.
let info = {
[max]: [a]
}; // Каждое найденное КОЛИЧЕСТВО делителей будет являться ключем в объекте info
// И будет хранить в себе массив чисел (пока что там 1 элеент, число [a])
for( let i = a + 1; i <= b; i++ ){
let divs = findDividers(i).length;
if( info[divs] ){ // Если в объекте уже есть это количество делителей как ключ
info[divs].push( i ); // Добавить в его массив текущее число
} else { // Иначе - создать новый ключ и массив с [текущим числом]
info[divs] = [i];
}
if( divs > max ){
max = divs; // Обновляем максимальное количество делителей, если новое оказалось больше него.
}
}
let foundNums = info[max]; // Массив чисел с макс. количеством делителей.
// Можно было циклом пройтись по нему и искать самое большое число.
// Но из предыдущих шагов понятно, что самым большим окажется последний элемент
maxOfThem = foundNums[foundNums.length - 1]; // Сразу берем его.
setTimeout( () => console.log( JSON.stringify(info) ) ); // Чтобы было видно что происходит
return maxOfThem + ', Делители: ' + findDividers(maxOfThem).join(", ");
}
function findDividers(num){
let dividers = [];
let temp = num;
while( temp >= 2 ){
for( let i = 2; i <= temp; i++ ){
if( temp % i == 0 ){
temp = temp / i;
dividers.push(i);
break;
}
}
}
return dividers;
}
Массив чисел "с одним делителем" — По совместительству простые числа))
function sum(a, b, c){
for( let i = 0; i < arguments.length; i++ ){
if( arguments[i] > a && arguments[i] < c ){
console.log( arguments[i] )
}
}
}
sum(2, 3, 4)
function number(a){
return a += a;
// return a *= a;
}
console.log( number(2) );
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть длинный основной файл JS и все множество блоков кода где данные подгружаются через AJAx
У меня в таблице (WPF DataGrid) строки в зависимости от ряда условий должны иметь свойство IsEnabled True или FalseДля анализа условий написал простенький...
Проект приложение windows service/служба, после какого то момента перестала работать миграция и получаю вот такую ошибку, не могу понять чего он трогает...