Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.60 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4. public class GreatDeceiver {
  5.     void solve() throws IOException {
  6.         long n = nextLong(), k = nextLong();
  7.  
  8.         long counter = 0;
  9.         long index = (long) Math.floor(Math.log(n) / Math.log(k)) + 1;
  10.         for (; index > 0; --index) {
  11.             long number = (long) Math.pow(k, index - 1);
  12.             long factor = n / number;
  13.  
  14.             if (factor == 0 || index % 2 == 1) {
  15.                 counter += factor * (long) Math.pow(k, index / 2);
  16.  
  17.                 n -= factor * number;
  18.                 if (n == 0) {
  19.                     counter++;
  20.                     break;
  21.                 }
  22.             } else {
  23.                 counter += (long) Math.pow(k, index / 2);
  24.                
  25.                 break;
  26.             }
  27.         }
  28.  
  29.         out.println(counter);
  30.     }
  31.  
  32.     void run() throws IOException {
  33.         reader = new BufferedReader(new InputStreamReader(System.in));
  34.         out = new PrintWriter(new OutputStreamWriter(System.out));
  35.          reader = new BufferedReader(new FileReader("great.in"));
  36.          out = new PrintWriter(new FileWriter("great.out"));
  37.         tokenizer = null;
  38.         solve();
  39.         reader.close();
  40.         out.flush();
  41.     }
  42.  
  43.     public static void main(String[] args) throws IOException {
  44.         new GreatDeceiver().run();
  45.     }
  46.  
  47.     BufferedReader reader;
  48.     StringTokenizer tokenizer;
  49.     PrintWriter out;
  50.  
  51.     int nextInt() throws IOException {
  52.         return Integer.parseInt(nextToken());
  53.     }
  54.  
  55.     long nextLong() throws IOException {
  56.         return Long.parseLong(nextToken());
  57.     }
  58.  
  59.     double nextDouble() throws IOException {
  60.         return Double.parseDouble(nextToken());
  61.     }
  62.  
  63.     String nextToken() throws IOException {
  64.         while (tokenizer == null || !tokenizer.hasMoreTokens()) {
  65.             tokenizer = new StringTokenizer(reader.readLine());
  66.         }
  67.         return tokenizer.nextToken();
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement