import java.util.*; public class row { public static void main(String[] args) { //skaner io Scanner scan = new Scanner(System.in); //dane wejsciowe long k = scan.nextLong(); long a = scan.nextLong(); long b = scan.nextLong(); //minimalna liczba do sprawdzenia long minSpr = ((long)(a / k) * k); if (minSpr < a) minSpr += k; //maksymalna liczba do sprawdzenia long maxSpr = 1620 * k; if ((b < maxSpr) | (maxSpr <= 0)) maxSpr = b; //pomocnicza tabela z potegami razy k long[] potega = new long[10]; for (int i = 0; i < 10; i++) potega[i] = i * i * k; //glowna petla sprawdzajaca long wynik = 0; for(long liczba = minSpr; liczba <= maxSpr; liczba += k) { //obliczamy sume poteg razy k long liczbaTmp = liczba, suma = 0; while (liczbaTmp > 0) { suma += potega[(byte)(liczbaTmp % 10)]; liczbaTmp = (long)(liczbaTmp / 10); } //sprawdzamy if (suma == liczba) wynik++; } System.out.println(wynik); } }
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 52 53 54 | import java.util.*; public class row { public static void main(String[] args) { //skaner io Scanner scan = new Scanner(System.in); //dane wejsciowe long k = scan.nextLong(); long a = scan.nextLong(); long b = scan.nextLong(); //minimalna liczba do sprawdzenia long minSpr = ((long)(a / k) * k); if (minSpr < a) minSpr += k; //maksymalna liczba do sprawdzenia long maxSpr = 1620 * k; if ((b < maxSpr) | (maxSpr <= 0)) maxSpr = b; //pomocnicza tabela z potegami razy k long[] potega = new long[10]; for (int i = 0; i < 10; i++) potega[i] = i * i * k; //glowna petla sprawdzajaca long wynik = 0; for(long liczba = minSpr; liczba <= maxSpr; liczba += k) { //obliczamy sume poteg razy k long liczbaTmp = liczba, suma = 0; while (liczbaTmp > 0) { suma += potega[(byte)(liczbaTmp % 10)]; liczbaTmp = (long)(liczbaTmp / 10); } //sprawdzamy if (suma == liczba) wynik++; } System.out.println(wynik); } } |