package com.shashi.mpoole;
public class MetricPrefix {
    static int ONE_ZERO_TWO_FOUR = 1024;
    static String SEPARATOR = " ";
    enum SIZE
    {
        B, K, M, G, T, P, E, Z, Y;
//      BYTE, KILO, MEGA, GIGA, TERA, PETA, EXA, ZETTA, YOTTA;
    }
    class Result
    {
        int number = 0;
        SIZE size;
        public Result setNumber(int number)
        {
            this.number = number;
            return this;
        }
        public Result setSize(SIZE size)
        {
            this.size = size;
            return this;
        }
        public String getValue()
        {
            return this.number + SEPARATOR + this.size; 
        }
    }
    public Result getResult(double howMuchBigger)
    {
        double bigNumber = howMuchBigger;
        int index = 0;
        while(howMuchBigger-ONE_ZERO_TWO_FOUR>0)
        {
            bigNumber = howMuchBigger;
            howMuchBigger = howMuchBigger/ONE_ZERO_TWO_FOUR;
            index++;
        }
        if(index == 0)
            return new Result().setNumber((int) (bigNumber)).setSize(SIZE.values()[index]); 
        else
        return new Result().setNumber((int) (bigNumber/ONE_ZERO_TWO_FOUR)).setSize(SIZE.values()[index]);
    }
    public static void main(String[] args) {
        MetricPrefix j = new MetricPrefix();
        System.out.println(j.getResult(56).getValue());
    }
}