Ну давай подумаем
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
У меня "просится" такой алгоритм. Для примера возьмем 2170000-2187999. Писать буду алгоритм, на ПХП сам переводи. Для любого диапазона, мне кажется, будет работать.
1. Преобразуем границы диапазона в числа.
2. Затем "само просится" добавить 1 ко второму числу. Получим 2188000.
3. Сравниваем границы, рассматривая их как символьные строки. Отсекаем от конца, по одному символу, до тех пор, пока они одинаковые. В примере получаем новый диапазон 2170-2188.
4. Опять преобразуем в числа.
5. Затем строим последовательность от начала нового диапазона до конца, с шагом 1, но без равенства концу диапазона (т.е. на единицу меньше, от 2170 до 2187).
6. Получаем
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
7. Анализируем полученные данные... Автоматически, естественно
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
И видим, что у нас есть полный диапазон от 2170 до 2179. Поэтому его можно ужать до 217. А всё, что начинается на 218, остается. В итоге имеем:
217
2180
2181
2182
2183
2184
2185
2186
2187
То есть то, что и нужно было.
Берем любой другой диапазон, например 1950000-1959999, запускаем в этот алгоритм, и получаем искомое 195 (уже на 6-м шаге).
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)