mvCode

Range, Опсег Аипс

Nov 10th, 2019
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.50 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.util.StringTokenizer;
  4.  
  5. public class Range {
  6.  
  7.  
  8.     static int proveri(long N, int A, int B) {
  9.  
  10.         long rez = 0L;
  11.         if( B > Math.sqrt( (double)N ) )
  12.             B = ( int )Math.sqrt( (double)N );
  13.  
  14.         // ako e ocigledno deka br x e 10 na stepen, zbirot na cifrite na n ke e 4
  15.  
  16.         if( zbirCifri( N ) == 4 ) {
  17.  
  18.             for( int i = 1; i<= B; i = i*10 ) {
  19.                 rez = (long)i*i + zbirCifri( (long)i ) + (long)200 * i;
  20.  
  21.                 if (rez == N)
  22.                     return i;
  23.             }
  24.         }
  25.  
  26.         for( int i = A; i<= B; i++) {
  27.  
  28.             rez = (long) Math.pow( i, 2 ) + zbirCifri( i ) + 200 * i ;
  29.             if( rez == N)
  30.                 return i;
  31.         }
  32.  
  33.         return -1;
  34.     }
  35.  
  36.     static int zbirCifri( long x ) {
  37.  
  38.         int zbir = 0;
  39.         while(x > 0) {
  40.             zbir += x % 10;
  41.             x = x / 10;
  42.         }
  43.         return zbir;
  44.     }
  45.  
  46.  
  47.  
  48.     public static void main(String[] args) throws Exception {
  49.         int i,j,k;
  50.  
  51.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  52.  
  53.         long N = Long.parseLong(br.readLine());
  54.  
  55.         StringTokenizer st = new StringTokenizer(br.readLine());
  56.         int A = (int)Long.parseLong(st.nextToken());
  57.         int B = (int)Long.parseLong(st.nextToken());
  58.  
  59.         int res = proveri(N, A, B);
  60.         System.out.println(res);
  61.  
  62.         br.close();
  63.  
  64.     }
  65.  
  66. }
Add Comment
Please, Sign In to add comment