Program table;
var
f, i: integer;
k: real;
begin
for i := 1 to 20 do
writeln(i, ' (фунт) = ', (i * 0.4):1:3, ' (кг)');
end.
Память, занимаемая сообщением первоначально: 50*8 бит = 50 байт
Память, занимаемая сообщением после перекодировки:
50*16 бит = 50*2 байт = 100 байт
Количество информации увеличилось на 100-50 байт = 50 байт
Ответ:
есть пара неясностей в условии. если допускается такое, что единица и само число тоже являются делителями, то берите первый вариант решения, иначе - берите второе.
и еще кое-что: если нужно хотя бы 4 делителя, то оставьте все как есть, а если нужно ровно четыре делителя, в строчке if k> =4 then write(i: 3); уберите знак > .
1 вариант.
program zadacha;
var n, i, j, k : byte;
begin
write('введите число n');
for i: = 1 to n do begin
k: =0;
for j: = 1 to i do
if i mod j =0 then k: =k+1;
if k> =4 then write(i: 3);
2 вариант.
program zadacha;
var n, i, j, k : byte;
begin
write('введите число n');
for i: = 1 to n do begin
k: =0;
for j: = 2 to (i-1) do
if i mod j =0 then k: =k+1;
if k> =4 then write(i: 3);
<em>// PascalABC.NET 3.2, сборка 1346 от 25.11.2016</em>
<em>// Внимание! Если программа не работает, обновите её версию!</em>
// сортировка выбором
procedure SortBySelect(var a:array of integer);
begin
var j:=a.High;
while j>0 do begin
var mx:=a[0];
var imx:=0;
for var i:=1 to j do
if a[i]>mx then begin mx:=a[i]; imx:=i end;
a[imx]:=a[j];
a[j]:=mx;
j-=1
end
end;
begin
var a:=ArrRandom(10,-20,20); a.Println;
SortBySelect(a); a.Println
end.
<u>Пример</u>
-6 14 2 -6 -6 -9 20 -18 13 -18
-18 -18 -9 -6 -6 -6 2 13 14 20