const n=10;
var a:array [1..n] of integer;
i,k:integer;
begin
write ('Массив: ');
for i:=1 to n do
begin
a[i]:=random(56);
if (a[i]>=12) and (a[i]<=34) then k:=k+1;
if i<>n then write (i,' элемент: ',a[i],'; ') else write (i,' элемент: ',a[i],' ')
end;
writeln;
writeln ('Количество элементов, значения которых попадают в интервал от 12 до 34, равно ',k)
end.
var
z,a,i:integer;
begin
writeln('vvedite chislo');
readln(z);
writeln('vvedite zifru');
readln(a);
for i:=1 to length(IntToStr(z)) do begin
if z mod 10 = a then
writeln('est');
z:=z div 10;
end;
end.
Если не поймешь, куда какая буква - напиши в лп
Не знаю пишут ли тут готовый код, но я ****** писать его, но попробую помочь схемой.
Насчет диапазона я не понял точно, его тебе весь дали или в форме 1-10 или каждое число
крч я пишу общее решение а ты уже подумаешь как в твоей ситуации работать
1. берешь все делители числа
что бы сделать это ты узнаешь число и делишь в цикле от 1 и дальше i++, понятное нужны только такие делители про котором остаток будет 0
т.е делаешь проверку на то что бы (% == 0)
если равно записываешь число(в массив или какт придумаешь), нет - идешь по циклу дальше
проверяешь пока i!=твоему числу (это и нормально цикл намутит и сразу исключит самое число в качестве делителя)
если цикл закончился суммируешь всё что достал и проверяешь равна ли эта сумма твоему числу, если да используешь cout а в нем начальное число если нет идешь ко второму и заново схема
для такой махинации нужен наверно будет еще 1 цикл поверх этого с проверкой на то что твое число не равно конечному в диапазоне/
Надеюсь помог тебе хотя бы немного.