Escolhendo o algoritmo ideal em PHP

À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:

php<?php
  $sum = 0;
  
  for ($i = 1; $i <= 1000000; $i++) {
    $sum += $i;
  }
  
  echo $i;
?>

O que há de errado? 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:

php<?php
  $n = 1000000;
  $sum = $n * ($n + 1) / 2;
  echo $sum;
?>

Moral da história: antes de resolver uma tarefa que consome muitos recursos, sempre verifique se 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.

Задание 3

Encontre todos os números primos no intervalo de 1 a 10000. Tarefa bônus, pode não ser resolvida.