// PascalABC.NET 3.6.3
uses School;
function Divizors(n: integer): List<integer>;
begin
var L := new List<integer>;
L.Add(1);
L.Add(n);
if n > 3 then
begin
var k := 2;
while (k * k <= n) and (k < 46341) do
begin
if n mod k = 0 then
begin
var t := n div k;
L.Add(k);
if k < t then L.Add(t)
else break
end;
Inc(k)
end;
L.Sort;
end;
Result := L
end;
begin
// 1
if ReadInteger.IsPrime then Println('YES')
else Println('NO');
// 2
ReadInteger.Factorize.First.Println;
// 3
var a := Divizors(ReadInteger);
Print(a.Count, a.Sum)
end.
для начала нужно рассчитать количество информации которое тратится на передачу цвета:
1 чб пиксель занимает минимум 1 бит инфы.
количество пикселей будет равно 60×8000 точек.
то есть всего 48×10^4 бит.
Однако, кроме цвета точки, мы должны знать и координату точки. И здесь инфовес будет зависить от метода кодировки. То есть это может быть как линия из чб пикселей, которая будет набирать новую горизонталь каждые 60 символовов, так и точка с непосредственными координатами - зависит от программы, которая будет выводить изображение.
Если это координаты точки, то мы должны потратить минимум 2^6= 64 (отображение вертикали) плюс 2^13=8192 (отображение горизонтали). то есть один пиксель потяжелеет на 6+13=19 или всего 19+1=20, то есть на пиксель с двумя координатами и чб цветом сожрет 2^20 = или 1 мегабит инфы. а весь файл будет весить нескоколько гигабайт. Очевидно по координате далеко не лучший)))
Поделитесь своими знаниями, ответьте на вопрос:
Составить программу, которая обеспечит ввод 15 чисел и определит сколько из них отрицательных, которые кратны 3.
begin
k:=0;
writeln('Введите 15 целых чисел:');
for i:=1 to 15 do
begin
readln(a);
if (a<0)and(a mod 3 = 0) then k:=k+1;
end;
writeln('k = ',k);
end.
Пример:
Введите 15 целых чисел:
75
-65
15
-68
28
-42
80
-76
51
-32
18
-16
-45
70
-65
k = 2