Pentru realizarea algoritmului am utilizat următoarele variabile:
- a, prima valoare din fișierul <numere.txt>, pentru care am alocat 4 octeți (în ea am păstrat tot timpul valoarea din față pentru compararea cu următoarea);
- b, a doua valoare din fișierul <numere.txt>, pentru care am alocat 4 octeți (în ea am păstrat tot timpul valoarea din spate pentru compararea cu precedenta);
- k, și ea de tip întreg, pentru care am alocat 4 octeți (cu ea am determinat numărul de valori distincte de două cifre din fișier);
- ok, o variabilă booleană, în care voi memora: true - dacă am găsit valori cerute sau false, în caz contrar.
În concluzie, variabilele folosite utilizează o memorie de 3*4+1=13 octeți, de unde rezultă EFICIENTA UTILIZĂRII MEMORIEI (pe lângă variabila utilizată pentru fișier).

În prima parte a algoritmului am citit prima valoare din fișier. Dacă există, verific dacă e în intervalul [10;99], caz în care incrementez cu 1 variabila k și afișez valoarea în cauză, cu un spațiu după ea, după care îl marchez pe ok cu true - dacă am găsit astfel de valori.
Pentru fiecare valoare nouă citită - b, mai mare decât 9, verific dacă este în același interval și dacă este diferită de a, caz în care măresc k cu 1 și o afișez cu spațiu după ea, după care noul a devine actualul b, pentru a o compara cu următorul b pe care-l voi citi din fișier. Acest pas se repetă atâta timp cât citesc valori din fișier mai mari decât 9. O dată cerințele îndeplinite afișez valorile găsite, iar la final k - numărul de valori de calculat. Dacă ok rămâne fals, afișez mesajul ”nu există”.
În acest fel am EFICIENTIZAT TIMPUL DE EXECUȚIE, algoritmul fiind unul liniar, complexitatea algoritmului fiind maxim N (unde N este numărul de valori din fișier) = O(N), de unde rezultă liniaritatea algoritmului.