Elección del algoritmo óptimo en PHP

A veces, el problema del código está relacionado con el hecho de que no se eligió la solución más óptima para el problema.

Supongamos, por ejemplo, que nos enfrentamos a la tarea de encontrar la suma de números enteros desde 1 hasta 1000000. Resolvamos la tarea planteada:

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

¿Qué está mal? El problema es que para resolver esta tarea existe una solución matemática.

¡Esta solución prácticamente no requiere recursos! Programémosla:

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

Moraleja: antes de resolver una tarea que consume muchos recursos, asegúrese siempre de verificar si existe una fórmula matemática predefinida o un enfoque matemático listo para su solución.

Задание 1

Encuentre la cantidad de números divisibles sin resto por 5, en el intervalo desde 1 hasta 1000.

Задание 2

Encuentre la cantidad de dígitos que se necesitarán para escribir todos los números desde 1 hasta 1000000.

Задание 3

Encuentre todos los números primos en el intervalo desde 1 hasta 10000. Tarea opcional, no es obligatorio resolverla.