Solution

















Code

#pragma GCC optimize(3)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long long LL;
const int N = 1e6  + 5;
const ll mod = 998244355;
const int DEG = 20;
const double PI = acos(-1.0);
const double eps = 1e-10;
const ll inf = 1e18;
static auto faster_iostream = []() {
    std::ios::sync_with_stdio(false);  // turn off sync
    std::cin.tie(nullptr);             // untie in/out streams
    return 0;
}();
ll p;
ll solve(ll x){
  ll res = x / p; 
  for(ll st = p * 10, ed = min(x, p * 10 + 9); st <= x; st *= 10, ed = ed * 10 + 9){
    ll realed = min(ed, x); // 右端点不能超过x
    for(ll i = st, mx = 0; i <= realed; i = mx + 1){
      //cout << x << ' ' << p << ' ' << i << ' ' << res << "\n";
      ll sum = x / i; // 
      mx = min(x / sum, realed); 
      res += sum * (mx - i + 1); // 整除个数 * 块的长度 
      i = mx + 1; // 到下一个块
    }
  }
  return res;
}
int main(){
  ll L, R;
  cin >> L >> R;
  for(p = 1; p <= 9; p++){
    cout << solve(R) - solve(L - 1) << "\n";
  }
  return 0;
}