1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<iostream>
#include<cstdlib>
#include<cmath>
//#include<cstdio>

using namespace std;

unsigned long long int mins[18] = {1, 1, 5, 31, 247, 
           2058, 17637, 154321, 1371743, 12345680,
           112233446, 1028806585, 9496676164, 88183421517, 823045267490,
           7716049382717, 72621641249093, 685871056241427};
unsigned long long int maxs[18]; // = [pow(10,1), 

int main(){
  for (int i = 0;i < 18; i++) maxs[i] = pow(10, i);
  unsigned long long int k, a, b, n = 0;
  cin >> k; cin >>a; cin >> b;
  for (int i =0 ; i < 18; i++) {
    if (k < mins[i]) b = min(b, (unsigned long long int) pow(10, i+1));
    //if (k > max[i]) a = max(a, pow(10, i));
  }
  int r = a % k; 
  if (r) a += (k-r);
  //cout << k << " " << a << " " << b << endl;
  while (a <= b) {
    unsigned long long int i = a, s= 0;
    while (i) {
      s += pow((i%10), 2);
      i /= 10;
    }
    //cout << a << " " << s <<  " " << s*k << endl;
    if (s * k == a) n++;
    a += k;
  }
  cout << n << endl;
}