Sqrt is pretty fast. I timed calling the functions
``` scala
def ceilSqrt(num: Int): Int = { math.ceil(math.sqrt(num)).toInt }
def noOp(num: Int): Int = { num }
```
for 10 billion iterations and there was a negligible difference in the timing. If you think it makes the code cleaner I can pull out the sqrt but it won't have any effect on performance. Personally I think having it in the getPartition method is the cleanest way to do it.