NrDivUnique

Se rezolvă fiecare serie de intervale în parte. Pentru fiecare interval i, dacă Bi >= 2*Ai, se observă uşor că intervalul are exact Bi divizori. Pentru situaţia în care Bi < 2*Ai, se verifică fiecare număr j din intervalul [1,sqrt(Bi)] dacă este divizor al vre­unui număr din intervalul [Ai,Bi]. Pentru a verifica dacă un număr j este divizor al intervalului, calculăm x=Ai/j+1 (valoarea minimă x cu care se poate înmulţi j astfel încât x*j>=Ai) şi y=Bi/j (valoarea maximă y cu care se poate înmulţi j astfel încât y*j<=Bi). De asemenea, trebuie avut grijă, ca atunci când Ai îl divide pe j, să decrementăm pe x cu 1. Dacă x<=y, atunci j şi toate numerele din intervalul [x,y] sunt divizori al intervalului [Ai,Bi]. Desigur, trebuie acordată mare atenţie numerelor din toate intervalele [x,y] astfel încât să nu contorizăm o valoare de mai multe ori.
Complexitate: O(N*sqrt(B))