program SQ;
{$mode delphi}
uses
SysUtils;
function sumOfDigits(n : integer) : Integer;
var s : string;
k : Byte;
Begin
s := IntToStr(n);
Result := 0;
for k := 1 to Length(s) do
Result := Result + StrToInt(s[k]);
End;
var K, A, B, i, sqr_i, res : Integer;
begin
Readln(a, b, K);
res := 0;
for i:=Round(Sqrt(a)) to Round(Sqrt(b)) do begin
sqr_i := Sqr(i);
if (sqr_i>=a) and (Sqr_i<=b) and (sumOfDigits(sqr_i) mod K = 0) then begin
res := res + 1;
end;
end;
Writeln(res);
end.
cHJvZ3JhbSBTUTsKCnskbW9kZSBkZWxwaGl9Cgp1c2VzCiAgU3lzVXRpbHM7CgpmdW5jdGlvbiBzdW1PZkRpZ2l0cyhuIDogaW50ZWdlcikgOiBJbnRlZ2VyOwp2YXIgcyA6IHN0cmluZzsKICAgIGsgOiBCeXRlOwpCZWdpbgogIHMgOj0gSW50VG9TdHIobik7CiAgUmVzdWx0IDo9IDA7CiAgZm9yIGsgOj0gMSB0byBMZW5ndGgocykgZG8KICAgIFJlc3VsdCA6PSBSZXN1bHQgKyBTdHJUb0ludChzW2tdKTsKRW5kOwoKdmFyIEssIEEsIEIsIGksIHNxcl9pLCByZXMgOiBJbnRlZ2VyOwoKYmVnaW4KICBSZWFkbG4oYSwgYiwgSyk7CiAgcmVzIDo9IDA7CiAgZm9yIGk6PVJvdW5kKFNxcnQoYSkpIHRvIFJvdW5kKFNxcnQoYikpIGRvIGJlZ2luCiAgICBzcXJfaSA6PSBTcXIoaSk7CiAgICBpZiAoc3FyX2k+PWEpIGFuZCAoU3FyX2k8PWIpIGFuZCAoc3VtT2ZEaWdpdHMoc3FyX2kpIG1vZCBLID0gMCkgdGhlbiBiZWdpbgogICAgICByZXMgOj0gcmVzICsgMTsKICAgIGVuZDsKICBlbmQ7CiAgV3JpdGVsbihyZXMpOyAgCmVuZC4K