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