import java.util.Scanner; public class row { public static final long maxSum=18*9*9; public static void main(String[] args) { // wczytaj dane long a,b,k; Scanner in=new Scanner(System.in); k=in.nextLong(); a=in.nextLong(); b=in.nextLong(); // System.out.println(18*9*9); // System.out.println(countSquaresSum(999999999999999999L)); System.out.println(solution(k,a,b)); in.close(); } static int countSquaresSum(long number){ int sum=0; while(number!=0){ int digit=(int)(number%10); sum+=digit*digit; number/=10; } return sum; } private static long solution(long k, long a, long b) { // k za duze, dosun a if(k>a) a=k; if(a>b) return 0; int counter=0; int i=1; while(k*i<a && i<=maxSum){ i++; } while(k*i>=a && k*i<=b && i<=maxSum){ if(countSquaresSum(k*i)==i){ counter++; // System.out.println(k*i+","+i); } i++; } return counter; } }
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.Scanner; public class row { public static final long maxSum=18*9*9; public static void main(String[] args) { // wczytaj dane long a,b,k; Scanner in=new Scanner(System.in); k=in.nextLong(); a=in.nextLong(); b=in.nextLong(); // System.out.println(18*9*9); // System.out.println(countSquaresSum(999999999999999999L)); System.out.println(solution(k,a,b)); in.close(); } static int countSquaresSum(long number){ int sum=0; while(number!=0){ int digit=(int)(number%10); sum+=digit*digit; number/=10; } return sum; } private static long solution(long k, long a, long b) { // k za duze, dosun a if(k>a) a=k; if(a>b) return 0; int counter=0; int i=1; while(k*i<a && i<=maxSum){ i++; } while(k*i>=a && k*i<=b && i<=maxSum){ if(countSquaresSum(k*i)==i){ counter++; // System.out.println(k*i+","+i); } i++; } return counter; } } |