Escolha do algoritmo ideal em JavaScript

Às vezes, o problema no código pode estar relacionado ao fato de que a solução escolhida para a tarefa não é a mais ideal.

Suponha, por exemplo, que temos a tarefa de encontrar a soma dos números inteiros de 1 a 1000000. Vamos resolver a tarefa proposta:

javascriptlet sum = 0;

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

O que há de errado então? O fato é que para resolver a tarefa proposta existe uma solução matemática.

Esta solução praticamente não requer recursos! Vamos programá-la:

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

Moral da história: antes de resolver uma tarefa que consome muitos recursos, sempre verifique se não existe uma fórmula matemática pronta ou uma abordagem matemática pronta para resolvê-la.

Задание 1

Encontre a quantidade de números divisíveis sem resto por 5, no intervalo de 1 a 1000.

Задание 2

Encontre a quantidade de dígitos necessária para escrever todos os números de 1 a 1000000.