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); } } |
English