Izbor optimalnog algoritma u PHP

Ponekad problem koda može biti povezan sa tim, da nije izabrano najoptimalnije rešenje zadatka.

Recimo, na primer, pred nama stoji zadatak da nađemo zbir celih brojeva od 1 do 1000000. Rešimo postavljeni zadatak:

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

Šta je onda problem? Stvar je u tome, što za rešavanje postavljenog zadatka postoji matematičko rešenje.

Ovo rešenje praktično ne zahteva resurse! Isprogramirajmo ga:

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

Morala: pre rešavanja resursno zahtevnog zadatka obavezno proverite da li ne postoji gotova matematička formula ili gotov matematički pristup za njegovo rešenje.

Задание 1

Pronađite koliko brojeva, deljivih bez ostatka sa 5, ima u intervalu od 1 do 1000.

Задание 2

Pronađite koliko će cifra biti potrebno, da se zapišu svi brojevi od 1 do 1000000.

Задание 3

Pronađite sve proste brojeve u intervalu od 1 do 10000. Zadatak sa zvezdicom, možete ga ne rešavati.