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
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
#pragma GCC optimize("03")
#include <bits/stdc++.h>
using namespace std;

/****** tr1 extension ******/
#if __cplusplus < 201103LL
#include <bits/stdtr1c++.h>
using namespace tr1;
#endif

/****** GNU extension ******/
#ifdef EXT
#include <bits/extc++.h>
using namespace __gnu_cxx;
using namespace __gnu_pbds;
#endif

const int MOD = (int)1e9 + 7;
const int MOD2 = (int)1e9 + 9;

const int INF = 1000000001;
const long long LLINF = (long long)1e18 + 1;

const double EPS = 10e-9;

const int MAXN = (int)1e6 + 7;
const int MX = (int)1e5 + 7;

typedef vector<int> VI;
typedef long long LL;
typedef long double LD;
typedef vector<VI> VVI;
typedef vector<LL> VLL;
typedef vector<double> VD;
typedef vector<string> VS;
typedef pair<int, int> PII;
typedef pair<LL, LL> PLL;
typedef vector<PII> VPII;
typedef vector<PLL> VPLL;

#define FOR(x, b, e) for (int x = b; x <= (e); ++x)
#define FORD(x, b, e) for (int x = b; x >= (e); --x)
#define REP(x, n) for (int x = 0; x < (n); ++x)
#define VAR(v, n) __typeof(n) v = (n)
#define ALL(c) (c).begin(), (c).end()
#define SIZE(x) ((int)(x).size())
#define FOREACH(i, c) for (VAR(i, (c.begin())); i != (c).end(); ++i)
#define FOREACHD(i, c) for (VAR(i, (c.rbegin())); i != (c).rend(); ++i)
#define WRITE(c) FOREACH(it, (c)) cout << (*it) << " ";

#define CLR(x, a) memset((x), (a), sizeof((x)))
#define eprintf(...) fprintf(stderr, __VA_ARGS__)

#define TIMESTAMP(x)                                                           \
  eprintf("[" #x "] Time = %.3lfs\n", clock() * 1.0 / CLOCKS_PER_SEC)

#define DBG(x) cerr << ">> " << #x << " = " << x << endl;

#define ___                                                                    \
  ios_base::sync_with_stdio(false);                                            \
  cin.tie(NULL);                                                               \
  cout.tie(NULL);

#define RAND(a, b) ((rand() % (b - a + 1)) + (a))
#define FLUSH()                                                                \
  fflush(stdout);                                                              \
  fflush(stderr);

#define HEAP priority_queue
#define PB push_back
#define ST first
#define ND second
#define PF push_front
#define MP make_pair

/******************* CODE *******************/

LL f(LL k) {
  LL res = 0;
  while (k) {
    LL tmp = k % 10;
    res += tmp * tmp;
    k /= 10;
  }
  return res;
}

int main(void) {
  LL a, b, c;
  scanf("%lld %lld %lld", &a, &b, &c);
  LL res = 0;

  for (LL i = 0; i <= 81 * 20; ++i) {
    if (f(i * a) == i) {
      /* eprintf("i -> %lld :-> f(%lld) = %lld\n", i,  a * i, f(a * i)); */
      if (a * i >= b && a * i <= c)
        ++res;
    }
  }

  printf("%lld\n", res);

  return 0;
}