1)1111101,011(2)=1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+0*2^1+1*2^0+0*2^ -1+1*2^-2+1*2^-3=64+32+16+8+4+0+0,25+0,125=135,375(10)
2)100001,2=1*2^5+0*2^4+0*2^3+0*2^2+0*2^1+1*2^1+1*2^-1=32+0+0+0+0+1+0.5=33,5(10)
3)1011011,111=1*2^6+0*2^5+1*2^4+1*2^3+0*2^2+1*2^1+1*2^0+1*2^-1+1*2^-2+1*2^-3=64+0+16+8+0+2+1+0,5+0,25+0,125=91,875(10)
24+8=32
log2(32)=5
39x5=195 бит = 24 байта
Не знаю пишут ли тут готовый код, но я ****** писать его, но попробую помочь схемой.
Насчет диапазона я не понял точно, его тебе весь дали или в форме 1-10 или каждое число
крч я пишу общее решение а ты уже подумаешь как в твоей ситуации работать
1. берешь все делители числа
что бы сделать это ты узнаешь число и делишь в цикле от 1 и дальше i++, понятное нужны только такие делители про котором остаток будет 0
т.е делаешь проверку на то что бы (% == 0)
если равно записываешь число(в массив или какт придумаешь), нет - идешь по циклу дальше
проверяешь пока i!=твоему числу (это и нормально цикл намутит и сразу исключит самое число в качестве делителя)
если цикл закончился суммируешь всё что достал и проверяешь равна ли эта сумма твоему числу, если да используешь cout а в нем начальное число если нет идешь ко второму и заново схема
для такой махинации нужен наверно будет еще 1 цикл поверх этого с проверкой на то что твое число не равно конечному в диапазоне/
Надеюсь помог тебе хотя бы немного.
uses WinCrt;
var
a, s: real;
begin
write('Введите сторону квадрата: ');
readln(a);
s:=a*a;
writeln('Площадь квадрата: ',s:5:2);
<span>end.</span>