#include <bits/stdc++.h>
using namespace std;
const int MAXX = 50 * 1000 + 5;
const int CHUNK = 250;
const int BIG = 300000;

int cnt(int x) {
    int ans = 0;
    while(x > 0) {
        int c = x % 10;
        ans -= (c == 7);
        ans += (c == 4);
        x /= 10;
    }
    return ans;
}

short int sum[1800][MAXX + 5];

int main() {
    //freopen("1000.in","r",stdin);

    int q; scanf("%d", &q);

    vector<int> dif(MAXX + 1, 0);
        
    vector<int> M(MAXX + 1, 0);

    for(int i = 1; i <= MAXX; ++i) {
        dif[i] += dif[i - 1];
        dif[i] += cnt(i);
        M[dif[i]]++;
    }
    
    vector<int> need;
    for(int i = 0; i <= MAXX; ++i) {
        if(M[i] > 1) {
            need.push_back(i);
        }
    }
    
    int sz = need.size();
    
    for(int i = 0; i < sz; ++i) {
        sum[i][0] = 0;
        for(int j = 1; j <= MAXX; ++j) {
            sum[i][j] += sum[i][j - 1];
            sum[i][j] += (dif[j] == need[i]);
        }
    }
    
    for(int i = 0; i < q; ++i) {
        int a, b; scanf("%d %d", &a, &b);
        long long ans = 0;

        for(int j = 0; j < sz; ++j) {
            int amount = sum[j][b] - sum[j][a - 1];
            if(need[j] == dif[a - 1])
                amount++;
            ans += 1LL * amount * (amount - 1) / 2;
        }

        printf("%lld\n", ans);
    }
}