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. |