Избор на оптимален алгоритъм в 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. Задача със звездичка, може да не я решавате.