uses crt;
var ch,i,n,count:integer;
begin
n:=0;
count:=0;
write(' Введите число : ');
readln(ch);
if ((abs(ch)<30000) and (ch div 100 <> 0 ) and (ch mod 7 = 0)) then inc(count);
while ((ch<>0) and ( n <1001)) do
begin
write(' Введите число : ');
readln(ch);
if ((abs(ch)<30000) and (ch div 100 <> 0 ) and (ch mod 7 = 0)) then inc(count);
inc(n);
end;
writeln(count);
readln;
end.
Найдём путем последовательного деления на основание с/с. Для этого нам необходимо делить число на 2 до того момента, пока в частном мы не получим цифру алфавита системы счисления, любую, кроме 0 (в данном случае необходимо прийти к 1). Потом записываем частное последнего вычисления, а следом за ним остатки остальных вычислений в обратном порядке. На фото подробнее.
Блок схема представлена на изображении
1) 11001000
2) 111101001
3) 1000011111
4) 1110110110
5) 10000000001
Решение:
например число 489
Каждое из полученных чисел дели на 2
489=244*2+1
244=122*2+0
122=61*2+0
61=30*2+1
30=15*2+0
15=7*2+1
7=3*2+1
3=1*2+1
2=2*1
Записываем в обратном порядке выделенные числа и получаем 111101001
P.S. для правильности следует записать все вычесления в столбик
Не указано на каком языке программирования нужно, поэтому напишу уж на Паскале. Всё сделал так, чтобы было понятно, хоть и не так компактно.
Var x, y, z:integer;
Begin
Write('Введите числа X, Y и Z^: ');
Readln(x, y, z);
If x mod 5=0 then x:=x+1;
If y mod 5=0 then y:=y+1;
If z mod 5=0 then z:=z+1;
Writeln('Полученные в итоге числа(X, Y, Z):', x, ', ', y, ', ', z);
End.