Hilbert's Hotel is Troubling Me

I am about to do an inspiring lesson on Hilbert's hotel to my 15 year old pupils (they are bright, don't worry) but I have an issue that needs resolving for my own benifit.

The problem is when infinitely many coaches turn up with infinitely many people on them. The solution, as I'm led to believe, is this:

1) Move all the current guests from their room m to 2m, freeing up all the odd numbered rooms.

2) Label each coach q = 1, 2, 3, 4, ...

3) Label each seat on each coach n = 1, 2, 3, 4, ...

4) Place people from the 1st coach into rooms numbered 3^n, 2nd coach into 5^n, 3rd coach into 7^n and qth coach into the (p+1)^n where p = (q + 1)th prime number.

Thus everyone is accomodated. My problem is that the hotel is now not full. In fact, every odd numbered room which has 2 or more distinct factors is empty.

Please can someone tell me where I have got things wrong or whether the hotel is indeed now not full.

Thanks,

James (this is my first post so please be kind).