Избор на оптимален алгоритам во PHP

Понекогаш проблемот со кодот може да биде поврзан со тоа што не е избрано најоптималното решение за задачата.

Да претпоставиме, на пример, дека ни е поставена задачата да го најдеме збирот на цели броеви од 1 до 1000000. Да ја решиме поставената задача:

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

Што не е во ред? Работата е во тоа што за решавање на поставената задача постои математичко решение.

Ова решение практично не бара ресурси! Да го програмираме:

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

Морал: пред решавање на задача која бара многу ресурси задолжително проверете дали не постои готова математичка формула или готов математички пристап за нејзино решавање.

Задание 1

Најдете го бројот на броеви кои се делат без остаток на 5, од интервалот од 1 до 1000.

Задание 2

Најдете го бројот на цифри што ќе бидат потребни, за да се запишат сите броеви од 1 до 1000000.

Задание 3

Најдете ги сите прости броеви во интервалот од 1 до 10000. Задача со ѕвездичка, не мора да се решава.