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
program rownanie;

var
	a, b, k: int64;
	sumOfSquares, result: integer;
	n: int64;
	
function calcSumOfSquares(n: int64): integer;
var
	result: integer;
begin
	result := 0;
	while n > 0 do begin
		inc(result, (n mod 10) * (n mod 10));
		n := n div 10;
	end;
	
	calcSumOfSquares := result;
end;

begin
	read(k, a, b);
	
	result := 0;
	for sumOfSquares := 1 to 18 * 81 do begin
		n := k * sumOfSquares;
		if n < a then
			continue;
		if n > b then
			break;
		if (sumOfSquares = calcSumOfSquares(n)) then
			inc(result);
	end;
	
	writeln(result);
end.