. Задание. Заполнить трассировочную таблицу. f1 = 1; f2 = 1; n = 10; i = 0
while i < n - 2:
sum = f1 + f2
f1 = f2
f2 = sum
i = i + 1
print(f2)
Начальные значения: f1 = f2=1, i = 0, n=10
i < n - 2
sum = f1 + f2
f1 = f2
f2 = sum
i = i + 1
0<10-2
sum =1+1=2
f1 =1
f2 =2
i = 0+1=1
1<8
sum =1+2=3
f1 =2
f2 =3
i =1+1=2
sum =
f1 =
f2 =
i =
sum =
f1 =
f2 =
i =
sum =
f1 =
f2 =
i =
sum =
f1 =
f2 =
i =
sum =
f1 =
f2 =
i =
sum =
f1 =
f2 =
i =
sum =
f1 =
f2 =
i =
!
Пусть количество пикселей в рисунке K, тогда объем памяти, занимаемой одним рисунком = (K*3)/1024 + 128 Кбайт.
X = 8*(K*3/1024 + 128)+2.5*1024
2. При использовании палитры из 2^16 цветов для хранения цвета 1 пикселя используется 16 бита = 2 байта.
Объем памяти, занимаемой одним рисунком = (K*2)/1024 + 128 Кбайт.
X = 20*(K*2/1024 + 128)
8*(K*3/1024 + 128)+2.5*1024 = 20*(K*2/1024 + 128)
К = 65536 (количество пикселей в рисунке)
X = 20*(K*2/1024 + 128) = 20*(65536*2/1024 + 128) Кбайт =
20*(128 + 128) Кбайт = 5120 Кбайт = 5120/1024 Мбайт = 5 Мбайт
var i,j,n:longint;
f:boolean;
begin
writeln('Введите число');
readln(n);
if n<2 then writeln('Простых делителей нет')
else
begin
write('Число ',n,' ','= 1');
for i:=2 to n do
if n mod i=0 then
begin
f:=true;
j:=2;
while f and(j<=round(sqrt(i/2)))do
begin
if i mod j=0 then f:=false
else j:=j+1;
end;
if f then write('*',i);
end;
end;
end.
Тестовое решение:
Введите число
2345
Число 2345 = 1*5*7*35*67