Может наоборот?
while (p > 50)
Тип того:
do {
var p = prompt('Введите число от 1 до 50 ','');
if (p==null) {
alert ('Вы нажали Cancel');
break;
}
if (p < 50) alert ('Вы ввели нужное число');
} while (p > 50)
Ну и можно же и отрицательное число ввести, и не число...