Optimalaus algoritmo pasirinkimas PHP

Kartais kodo problema gali būti susijusi su tuo, kad uždaviniui išspręsti pasirinktas ne pats optimaliausias būdas.

Tarkime, pavyzdžiui, kad prieš mus yra uždavinys rasti sveikųjų skaičių sumą nuo 1 iki 1000000. Išspręskime pateiktą uždavinį:

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

O kas negerai? Esmė ta, kad šiam uždaviniui išspręsti egzistuoja matematinis sprendimas.

Šis sprendimas praktiškai nereikalauja resursų! Užprogramuokime jį:

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

Moralas: prieš sprendžiant resursų reikalaujantį uždavinį būtinai patikrinkite, ar neegzistuoja jai išspręsti jau paruoštos matematinės formulės ar paruošto matematinio požiūrio.

Задание 1

Raskite skaičių, kurie be liekanos dalijasi iš 5, iš intervalo nuo 1 iki 1000, kiekį.

Задание 2

Raskite skaitmenų, kurių prireiks, kad užrašyti visus skaičius nuo 1 iki 1000000, kiekį.

Задание 3

Raskite visus pirminius skaičius intervale nuo 1 iki 10000. Uždavinys su žvaigždute, galima nespręsti.