program row;
var
a,b : Qword;
k : Qword;
d : Qword;
c : byte;
f : word;
r : Qword;
m : Qword;
i,j1,j2 : word;
j : word;
a1,b1 : Qword;
n : word;
begin
readln(k,a,b);
j:=1;
b1:=b div 10;
while b1>0 do
begin
j:=j+1;
b1:=b1 div 10
end;
n:=81*j;
b1:=b div k;
if b1<n then j2:=b1
else j2:=n;
a1:=a div k;
if (a mod k)>0 then a1:=a1+1;
if a1 <=j2 then
begin
j1:=a1;
for j:=j1 to j2 do
begin
f:=0; r:=k*j;
repeat
c:=r mod 10;
f:=f+c*c;
r:=r div 10
until r=0;
if f=j then m:=m+1;
end;
end;
writeln(m);
end.
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 | program row; var a,b : Qword; k : Qword; d : Qword; c : byte; f : word; r : Qword; m : Qword; i,j1,j2 : word; j : word; a1,b1 : Qword; n : word; begin readln(k,a,b); j:=1; b1:=b div 10; while b1>0 do begin j:=j+1; b1:=b1 div 10 end; n:=81*j; b1:=b div k; if b1<n then j2:=b1 else j2:=n; a1:=a div k; if (a mod k)>0 then a1:=a1+1; if a1 <=j2 then begin j1:=a1; for j:=j1 to j2 do begin f:=0; r:=k*j; repeat c:=r mod 10; f:=f+c*c; r:=r div 10 until r=0; if f=j then m:=m+1; end; end; writeln(m); end. |
English