import java.math.BigInteger; import java.util.Scanner; class row { final static int MAX_SUM = 9 * 9 * 18; static BigInteger k; static BigInteger a; static BigInteger b; public static void main(String[] args) { readKAB(); int counter = 0; for(Integer i = 0; i <= MAX_SUM; ++i) { BigInteger kTimesI = k.multiply(new BigInteger(i.toString())); if (kTimesI.compareTo(a) >= 0 && kTimesI.compareTo(b) <= 0) { Integer sqSumKTimesI = calculateSqSum(kTimesI); BigInteger kTimesSqSumKTimesI = k.multiply(new BigInteger(sqSumKTimesI.toString())); if (kTimesI.compareTo(kTimesSqSumKTimesI) == 0) { counter++; } } } System.out.println(counter); } private static int calculateSqSum(BigInteger number) { int sum = 0; String numStr = number.toString(); for (int i = 0; i < numStr.length(); ++i) { int digit = Character.getNumericValue(numStr.charAt(i)); sum += digit*digit; } return sum; } private static void readKAB() { Scanner scanner = new Scanner(System.in); k = scanner.nextBigInteger(); a = scanner.nextBigInteger(); b = scanner.nextBigInteger(); } }
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 | import java.math.BigInteger; import java.util.Scanner; class row { final static int MAX_SUM = 9 * 9 * 18; static BigInteger k; static BigInteger a; static BigInteger b; public static void main(String[] args) { readKAB(); int counter = 0; for(Integer i = 0; i <= MAX_SUM; ++i) { BigInteger kTimesI = k.multiply(new BigInteger(i.toString())); if (kTimesI.compareTo(a) >= 0 && kTimesI.compareTo(b) <= 0) { Integer sqSumKTimesI = calculateSqSum(kTimesI); BigInteger kTimesSqSumKTimesI = k.multiply(new BigInteger(sqSumKTimesI.toString())); if (kTimesI.compareTo(kTimesSqSumKTimesI) == 0) { counter++; } } } System.out.println(counter); } private static int calculateSqSum(BigInteger number) { int sum = 0; String numStr = number.toString(); for (int i = 0; i < numStr.length(); ++i) { int digit = Character.getNumericValue(numStr.charAt(i)); sum += digit*digit; } return sum; } private static void readKAB() { Scanner scanner = new Scanner(System.in); k = scanner.nextBigInteger(); a = scanner.nextBigInteger(); b = scanner.nextBigInteger(); } } |