int x = 9801; java.util.Map<Integer, Integer> map = new java.util.TreeMap<Integer, Integer>(); int f = 2; while (x >= f) if (x % f == 0) {x /= f; if (map.get(f) == null) map.put(f, 1); else map.put(f, map.get(f) + 1);} else f++; System.out.println(map);