# Выбор оптимального алгоритма в JavaScript

Иногда проблема кода бывает связана с тем, что выбрано не самое оптимальное решение задачи.

Пусть, к примеру, перед нами стоит задача найти сумму целых чисел от `1` до `1000000`. Решим поставленную задачу:

`let sum = 0; for (let i = 1; i <= 1000000; i++) { sum += i; } console.log(sum);`

Что же не так? Дело в том, что для решения поставленной задачи существует математическое решение.

Это решение практически не требует ресурсов! Запрограммируем его:

`let n = 1000000; let sum = n * (n + 1) / 2; console.log(sum);`

Мораль: перед решением ресурсоемкой задачи обязательно проверяйте, нету ли для ее решения готовой математической формулы или готового математического подхода.

Найдите количество чисел, делящихся без остатка на `5`, из промежутка от `1` до `1000`.

Найдите количество цифр, которое понадобится, чтобы записать все числа от `1` до `1000000`.

←→
↑
en ru