1. При использовании палитры из 2^24 цветов для хранения цвета 1 пикселя используется 24 бита = 3 байта. Пусть количество пикселей в рисунке 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 Мбайт
. в нужно вывести все составные числа из промежутка [2; n]. код программы:
program lab3;
var i,n,j,s,l: integer;
m: real;
begin
readln (n);
for i: =2 to n do
begin
s: =trunc (sqrt (i));
for l: =2 to s do
begin
m: = i mod l;
if m=0 then
write (' ',i);
end;
end;
end.
но проблема - как только s становится больше 2, составные числа начинают несколько раз повторятся, т.к., например 12 делится и на 2 и на 3. вопрос: как мне сделать выход из цикла после первого успешного деления?
Пусть количество пикселей в рисунке 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 Мбайт
ответ:
. в нужно вывести все составные числа из промежутка [2; n]. код программы:
program lab3;
var i,n,j,s,l: integer;
m: real;
begin
readln (n);
for i: =2 to n do
begin
s: =trunc (sqrt (i));
for l: =2 to s do
begin
m: = i mod l;
if m=0 then
write (' ',i);
end;
end;
end.
но проблема - как только s становится больше 2, составные числа начинают несколько раз повторятся, т.к., например 12 делится и на 2 и на 3. вопрос: как мне сделать выход из цикла после первого успешного деления?
var
i, n, j, s, l: integer;
m: real;
begin
readln(n);
for i : = 2 to n do
begin
s : = trunc(sqrt(i));
for l : = 2 to s do
begin
m : = i mod l;
if m = 0 then
begin
write(' ', i);
break;