Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 29.01.2022, 14:23
Новичок на форуме
Отправить личное сообщение для Harut97 Посмотреть профиль Найти все сообщения от Harut97
 
Регистрация: 29.01.2022
Сообщений: 7

спасибо огромное друг мой очень сильно помог
Ответить с цитированием
  #12 (permalink)  
Старый 29.01.2022, 14:24
Новичок на форуме
Отправить личное сообщение для Harut97 Посмотреть профиль Найти все сообщения от Harut97
 
Регистрация: 29.01.2022
Сообщений: 7

по ошибке отправил
Ответить с цитированием
  #13 (permalink)  
Старый 29.01.2022, 14:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от Harut97
findHappiness(start, end ) что должна делать эта функция?
функция должна вернуть массив чисел из диапазона от start до end которые подходят под условие счастливые
Ответить с цитированием
  #14 (permalink)  
Старый 29.01.2022, 17:40
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Попробовал до 100 000.
Нашлось еще одно число - 8128
Но удивительно не это.
Удивительно, что Хром считает это за 8,2 - 8,4 с
А Файрфокс за 7,6 - 7,8

И где хваленая оптимизация?
Ответить с цитированием
  #15 (permalink)  
Старый 29.01.2022, 17:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

voraa,
Ответить с цитированием
  #16 (permalink)  
Старый 03.02.2022, 20:28
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от voraa
Попробовал до 100 000.
Удивительно, что Хром считает это за 8,2 - 8,4 с
у меня вообще за 15 с.

слегка оптимизировал вариант рони, стало работать за 90 мс - limit теперь sqrt(i)
function findHappiness(start, end) {
    const arr = [];
    for (let i = start; i <= end; i++) {
        let sum = 1,
            limit = Math.sqrt(i);
        for (let j = 2; j <= limit; j++) {
            if (i % j === 0) {
                const k = i / j;
                sum += j + (k === j ? 0 : k);
            }
        }
        if (sum === i) {
            arr.push(i)
        }
    }
    return arr;
}
Ответить с цитированием
  #17 (permalink)  
Старый 03.02.2022, 23:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Alexandroppolus,
спасибо, думал над вариантом Math.sqrt, но не сообразил как второй сомножитель сохранить.
Ответить с цитированием
  #18 (permalink)  
Старый 04.02.2022, 02:47
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Вообще эти штуки называются "совершенные числа"

https://ru.wikipedia.org/wiki/%D0%A1...81%D0%BB%D0%BE

Они все имеют вид 2^p * (2*2^p - 1), где выражение в скобках должно быть простым. Точнее, это для четных совершенных. А нечетных возможно и нет вовсе.
То есть искать такие числа можно намного быстрее - просто брать (2*2^p - 1) и проверять что оно простое.
Ответить с цитированием
  #19 (permalink)  
Старый 04.02.2022, 07:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Alexandroppolus,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34