хм... чего-то ерунда какая-то....
1. Во-первых,
Код
While N>C


2. Во-вторых, у меня вопрос к паскалянтам, после do вся строчка выполняется каждую итерацию или только первое выражение?
Я про строку
Код
While N<=C do N:=N-C; c:=c+1;

Не стоит ли её заменить на
Код
While N<=C do begin N:=N-C; c:=c+1; end;

Оговорюсь, паскаля не знаю вообще, так что по этому пункту могу ошибаться.

3. В-третьих, строка
Код
If N<=C then begin read(N) end;

вообще не понятна.