function summdel(x:integer):integer; //результат - сумма делителей х var k,sum:integer; begin sum:=0; for k := 1 to x div 2 + 1 do if x mod k = 0 then sum:= sum+k; summdel:=sum; end;
begin writeln('Введите границы a,b '); readln(a,b); maxsumm := 1; max := 1; for i := a to b do begin if summdel(i) > maxsumm then begin maxsumm:= summdel(i); max := i; end; end; writeLn('Максимальная сумма делителей - ', maxsumm, ' число - ',max) end.
3) 137 = 10001001 (нужно число делить на 2, записывая остаток, и так до тех пор пока число уже нельзя будет делить, потом записываем остатки в обратном порядке)
137 / 2 = 68 ( остаток 1)
68 / 2 = 34 (остаток 0)
34 / 2 = 17 (остаток 0)
17 / 2 = 8 (остаток 1)
8 / 2 = 4 (0)
4 / 2 = 2 (0)
2 / 2 = 1 (0)
Теперь записываем остатки в обратном порядке = 10001001
4) Как я понял 8 и 16 это систему счисления, если да то:
а)151 = 1 * 8^2 + 5 * 8^1 + 1 * 8^0 = 64 + 40 + 1 = 105
б) 2С = 2 * 16 + 12(С) = 32 + 12 = 44