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

1 дан 1000 гача булган оралиқдаги 5 га қолдиқсиз булинадиган сонларнинг сонини топинг.

Задание 2

1 дан 1000000 гача булган барча сонларни ёзиш учун сарфланадиган рақамлар сонини топинг.

Задание 3

1 дан 10000 гача булган оралиқдаги барча туб сонларни топинг. Юлдузча билан масала, ечиш шарт эмас.