#include <iostream>
#include <unordered_set>
using namespace std;
// Hàm tính tổng bình phương các chữ số của số n
long long tinhTongBinhPhuongChuSo(long long n) {
long long t /> while (n > 0) {
int chuSo = n % 10;
tong += chuSo * chuSo;
n /= 10;
}
return tong;
}
// Hàm kiểm tra xem một số có phải là số đặc biệt hay không
bool laSoDacBiet(long long n) {
unordered_set<long long> daXuatHien;
while (n != 1 && daXuatHien.find(n) == daXuatHien.end()) {
daXuatHien.insert(n);
n = tinhTongBinhPhuongChuSo(n);
}
return n == 1;
}
int main() {
freopen("PEARL.INP", "r", stdin);
freopen("PEARL.OUT", "w", stdout);
int soLuongTest;
cin >> soLuongTest;
while (soLuongTest--) {
long long l, r;
cin >> l >> r;
int demSoDacBiet = 0;
for (long long i = l; i <= r; ++i) {
if (laSoDacBiet(i)) {
demSoDacBiet++;
}
}
cout << demSoDacBiet << endl;
}
return 0;
}