func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int modulo = 1e9 + 7;   int n;   const int limite = 100001;   long long int cuantoshasta[limite], sumahasta[limite], valor[limite],       prodhasta[limite];   long long int cuatros[limite][10], sietes[limite][10], diezala[limite],       dosala[limite], sumahasta7[limite][10], prodhasta7[limite][10];   long long int d[limite];   long long int computa(string &s) {     for (int i = 0; i < n; i++) d[i] = s[n - 1 - i] -  0 ;     valor[0] = d[0];     if (d[0] == 4) {       cuantoshasta[0] = 1;       sumahasta[0] = 4;       prodhasta[0] = 0;     } else {       cuantoshasta[0] = 2;       sumahasta[0] = 11;       prodhasta[0] = 28;     }     for (int i = 1; i < n; i++) {       valor[i] = (valor[i - 1] + diezala[i] * d[i]) % modulo;       if (d[i] == 4) {         cuantoshasta[i] = cuantoshasta[i - 1];         sumahasta[i] =             (4 * diezala[i] % modulo * cuantoshasta[i - 1] + sumahasta[i - 1]) %             modulo;         prodhasta[i] =             (4 * diezala[i] % modulo *                  (2 * sumahasta[i - 1] - cuatros[i - 1][4] - valor[i - 1] +                   4 * diezala[i] % modulo * (cuantoshasta[i - 1] - 1) % modulo) %                  modulo +              prodhasta[i - 1]) %             modulo;       } else {         cuantoshasta[i] = (cuantoshasta[i - 1] + dosala[i]) % modulo;         sumahasta[i] =             (sumahasta7[i][4] + 7 * diezala[i] % modulo * cuantoshasta[i - 1] +              sumahasta[i - 1]) %             modulo;         prodhasta[i] =             (prodhasta7[i][4] + sietes[i][4] * cuatros[i][7] % modulo +              7 * diezala[i] % modulo *                  (2 * sumahasta[i - 1] - cuatros[i - 1][4] - valor[i - 1] +                   7 * diezala[i] % modulo * (cuantoshasta[i - 1] - 1) % modulo) %                  modulo +              prodhasta[i - 1]) %             modulo;       }     }     return prodhasta[n - 1];   }   int main() {     ios::sync_with_stdio(false);     string sl, sr;     cin >> sl >> sr;     n = int(sl.size());     cuatros[0][4] = 4;     cuatros[0][7] = 7;     sietes[0][4] = 4;     sietes[0][7] = 7;     diezala[0] = 1;     dosala[0] = 1;     sumahasta7[0][4] = 4;     sumahasta7[0][7] = 11;     prodhasta7[0][4] = 0;     prodhasta7[0][7] = 28;     for (int i = 1; i < n; i++) {       diezala[i] = (diezala[i - 1] * 10) % modulo;       dosala[i] = (dosala[i - 1] * 2) % modulo;       cuatros[i][4] = (cuatros[i - 1][4] + 4 * diezala[i]) % modulo;       cuatros[i][7] = (cuatros[i - 1][4] + 7 * diezala[i]) % modulo;       sietes[i][4] = (sietes[i - 1][7] + 4 * diezala[i]) % modulo;       sietes[i][7] = (sietes[i - 1][7] + 7 * diezala[i]) % modulo;       sumahasta7[i][4] =           (4 * diezala[i] % modulo * dosala[i] + sumahasta7[i - 1][7]) % modulo;       sumahasta7[i][7] = (sumahasta7[i][4] + 7 * diezala[i] % modulo * dosala[i] +                           sumahasta7[i - 1][7]) %                          modulo;       prodhasta7[i][4] =           (4 * diezala[i] % modulo *                (2 * sumahasta7[i - 1][7] - cuatros[i - 1][4] - sietes[i - 1][7] +                 4 * diezala[i] % modulo * (dosala[i] - 1) % modulo) %                modulo +            prodhasta7[i - 1][7]) %           modulo;       prodhasta7[i][7] =           (prodhasta7[i][4] + sietes[i][4] * cuatros[i][7] % modulo +            7 * diezala[i] % modulo *                (2 * sumahasta7[i - 1][7] - cuatros[i - 1][4] - sietes[i - 1][7] +                 7 * diezala[i] % modulo * (dosala[i] - 1) % modulo) %                modulo +            prodhasta7[i - 1][7]) %           modulo;     }     cout << ((computa(sr) - computa(sl)) % modulo + modulo) % modulo << endl;   }   