Výběr optimálního algoritmu v PHP

Někdy může být problém kódu spojen s tím, že bylo zvoleno ne nejoptimálnější řešení úlohy.

Předpokládejme například, že před námi stojí úkol najít součet celých čísel od 1 do 1000000. Pojďme zadaný úkol vyřešit:

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

Co je tedy špatně? Jde o to, že pro řešení zadaného úkolu existuje matematické řešení.

Toto řešení prakticky nevyžaduje žádné prostředky! Naprogramujme jej:

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

Ponaučení: Před řešením náročné úlohy vždy ověřte, zda pro její řešení neexistuje hotový matematický vzorec nebo hotový matematický přístup.

Задание 1

Najděte počet čísel dělitelných beze zbytku 5 z intervalu od 1 do 1000.

Задание 2

Najděte počet číslic, které budou potřeba pro zapsání všech čísel od 1 do 1000000.

Задание 3

Najděte všechna prvočísla v intervalu od 1 do 10000. Úloha se hvězdičkou, není nutné řešit.