Dmitry Dudunov, проще не всегда лучше. Да, так сделать можно. А чтобы преобразовать число в строку, можно сложить его с пустой строкой. Но явные преобразования с оборачиванием в Number() или String() читабельнее, хоть и длиннее.
Ну, это же классика: prompt возвращает строку, сложение строк происходит сцеплением. Распечатайте p + q (перед if или во всех ветках исполнения) - я уверен, что там будет 502!