Výber optimálneho algoritmu v PHP

Niekedy je problém kódu spojený s tým, že nebolo zvolené najoptimálnejšie riešenie úlohy.

Predpokladajme napríklad, že pred nami stojí úloha nájdenie súčtu celých čísel od 1 do 1000000. Vyriešme zadanú úlohu:

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

Čo je teda zlé? Faktom je, že na riešenie tejto úlohy existuje matematické riešenie.

Toto riešenie prakticky nevyžaduje žiadne zdroje! Naprogramujme ho:

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

Poučenie: pred riešením náročnej úlohy si vždy skontrolujte, či pre jej riešenie neexistuje hotový matematický vzorec alebo hotový matematický prístup.

Задание 1

Nájdite počet čísel, ktoré sú bezo zvyšku deliteľné číslom 5, z intervalu od 1 do 1000.

Задание 2

Nájdite počet číslic, ktoré budú potrebné na zapísanie všetkých čísel od 1 do 1000000.

Задание 3

Nájdite všetky prvočísla v intervale od 1 do 10000. Úloha s hviezdičkou, nemusíte riešiť.