import java.io.BufferedInputStream;
import java.math.BigInteger;
import java.util.Scanner;
public class row {
public static void main(String[] args) {
Scanner scanner = new Scanner(new BufferedInputStream(System.in));
BigInteger k = scanner.nextBigInteger();
BigInteger a = scanner.nextBigInteger();
BigInteger b = scanner.nextBigInteger();
int counter = 0;
for (long i = 1; i <= 10 * 81; i++) {
BigInteger candidate = k.multiply(BigInteger.valueOf(i));
if (sumOfSquaresOfDigits(candidate) == i && candidate.compareTo(a) >= 0 && candidate.compareTo(b) <= 0) {
counter++;
}
}
System.out.println(counter);
}
private static int sumOfSquaresOfDigits(BigInteger candidate) {
int sum = 0;
while (candidate.compareTo(BigInteger.ZERO) > 0) {
int digit = candidate.remainder(BigInteger.TEN).intValue();
sum += digit * digit;
candidate = candidate.divide(BigInteger.TEN);
}
return sum;
}
}
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 | import java.io.BufferedInputStream; import java.math.BigInteger; import java.util.Scanner; public class row { public static void main(String[] args) { Scanner scanner = new Scanner(new BufferedInputStream(System.in)); BigInteger k = scanner.nextBigInteger(); BigInteger a = scanner.nextBigInteger(); BigInteger b = scanner.nextBigInteger(); int counter = 0; for (long i = 1; i <= 10 * 81; i++) { BigInteger candidate = k.multiply(BigInteger.valueOf(i)); if (sumOfSquaresOfDigits(candidate) == i && candidate.compareTo(a) >= 0 && candidate.compareTo(b) <= 0) { counter++; } } System.out.println(counter); } private static int sumOfSquaresOfDigits(BigInteger candidate) { int sum = 0; while (candidate.compareTo(BigInteger.ZERO) > 0) { int digit = candidate.remainder(BigInteger.TEN).intValue(); sum += digit * digit; candidate = candidate.divide(BigInteger.TEN); } return sum; } } |
English