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
#include <cstdio>
#include <cstdlib>
#include <vector>
#include <map>
#include <algorithm>
#include <set>
#include <time.h>
#include <queue>

typedef long long int64;

using namespace std;

int main () {
	int64 k, a, b;
	scanf("%lld %lld %lld", &k, &a, &b);
	int64 min_multiplier = max(a / k, 1LL);
	int64 max_multiplier = min(b / k, 2000LL);
	int count = 0;
	for (int64 m = min_multiplier; m <= max_multiplier; m++) {
		int64 n = m * k;
		int64 s = 0;
		int64 nn = n;
		while (nn > 0) {
			int64 c = nn % 10LL;
			s += c * c;
			nn /= 10LL;
		}
		if (s * k == n) {
			count++;
		}
	}
	printf("%d\n", count);
	return 0;
}