func_code_string: #include <bits/stdc++.h>   using namespace std;   const int INF = 0x3fffffff;   const int SINF = 0x7fffffff;   const long long LINF = 0x3fffffffffffffff;   const long long SLINF = 0x7fffffffffffffff;   const int MAXN = 65;   const int MAXB = 10;   const int MAXS = (1 << 10) + 7;   int q;   int b;   long long l, r;   int a[MAXN];   long long dp[MAXB + 3][MAXN][MAXS];   void init();   void input();   void inputq();   void work();   long long getans(long long x);   int main() {     init();     input();     work();   }   void init() {     ios::sync_with_stdio(false);     for (int i = 2; i <= MAXB; ++i) {       int ms = (1 << i);       dp[i][0][0] = 1;       for (int j = 1; j < MAXN; ++j) {         for (int k = 0; k < ms; ++k) {           for (int x = 0; x < i; ++x) {             dp[i][j][k ^ (1 << x)] += dp[i][j - 1][k];           }         }       }     }   }   void input() { scanf( %d , &q); }   void inputq() { scanf( %d%I64d%I64d , &b, &l, &r); }   void work() {     for (int i = 0; i < q; ++i) {       inputq();       printf( %I64d n , getans(r) - getans(l - 1));     }   }   long long getans(long long x) {     if (!x) return 0;     int n = 0;     for (long long t = x; t; t /= b) {       a[n++] = t % b;     }     long long ans = 0;     int beg, ns = 0;     for (int i = n - 1; i >= 0; --i) {       beg = (i == n - 1) ? 1 : 0;       for (int j = beg; j < a[i]; ++j) {         ans += dp[b][i][ns ^ (1 << j)];       }       ns ^= (1 << a[i]);     }     if (!ns) ++ans;     for (int i = n - 2; i >= 0; --i) {       for (int j = 1; j < b; ++j) ans += dp[b][i][1 << j];     }     return ans;   }   