Scelta dell'algoritmo ottimale in PHP

A volte il problema del codice può essere correlato al fatto che non è stata scelta la soluzione più ottimale per il problema.

Supponiamo, ad esempio, di avere il compito di trovare la somma dei numeri interi da 1 a 1000000. Risolviamo il compito assegnato:

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

Cosa c'è che non va? Il fatto è che per risolvere il compito assegnato esiste una soluzione matematica.

Questa soluzione richiede praticamente nessuna risorsa! Programmiamola:

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

Morale: prima di risolvere un compito ad alta intensità di risorse controlla sempre se non esiste una formula matematica già pronta o un approccio matematico già pronto per la sua soluzione.

Задание 1

Trova il numero di numeri divisibili senza resto per 5, nell'intervallo da 1 a 1000.

Задание 2

Trova il numero di cifre che saranno necessarie per scrivere tutti i numeri da 1 a 1000000.

Задание 3

Trova tutti i numeri primi nell'intervallo da 1 a 10000. Compito con asterisco, non è obbligatorio risolverlo.