N1=32
K1=80
N=2^i
i=5
I=K*i
I=80*5
I1=400
N2=64
K2=70
i=6
I=70*6
I2=420
Ответ: Объём информации второго сообщение больше объёма первого сообщения на 20 бит
<span>Дан файл f с целыми числами . Нужно из этого файла взять нечетные числа поместить в файл h . А четные в файл g.</span>
DIM x AS INTEGER, y AS INTEGER
DIM f AS INTEGER, p AS INTEGER
CLS
FOR x = 0 TO 40
y = x * x + x + 41
IF y MOD 2 = 0 THEN f = -1 ELSE f = 0
p = 3
DO WHILE f = 0 AND p * p <= y
IF y MOD p = 0 THEN f = -1 ELSE f = 0
p = p + 2
LOOP
IF f = 0 THEN
PRINT "x="; x, "y="; y, "Is Prime"
ELSE
PRINT "x="; x, "y="; y, "Not Prime"
END IF
NEXT x
END
Обнаружился странный эффект qBASIC.
Последовательность команд:
y:=x^2+x+41 для x=40 присваивает у значение 1681.
Для p=41 значение p^2 также равно 1681, но значение выражения
p^2<=y при этом оказывается ложным, хотя p^2 в этом случае должно быть равно у.
В связи с этой странностью вместо х^2 использовано х*х, а вместо p^2 использовано р*р.
Результат выполнения программы:
x= 0 y= 41 Is Prime
x= 1 y= 43 Is Prime
x= 2 y= 47 Is Prime
x= 3 y= 53 Is Prime
x= 4 y= 61 Is Prime
x= 5 y= 71 Is Prime
x= 6 y= 83 Is Prime
x= 7 y= 97 Is Prime
x= 8 y= 113 Is Prime
x= 9 y= 131 Is Prime
x= 10 y= 151 Is Prime
x= 11 y= 173 Is Prime
x= 12 y= 197 Is Prime
x= 13 y= 223 Is Prime
x= 14 y= 251 Is Prime
x= 15 y= 281 Is Prime
x= 16 y= 313 Is Prime
x= 17 y= 347 Is Prime
x= 18 y= 383 Is Prime
x= 19 y= 421 Is Prime
x= 20 y= 461 Is Prime
x= 21 y= 503 Is Prime
x= 22 y= 547 Is Prime
x= 23 y= 593 Is Prime
x= 24 y= 641 Is Prime
x= 25 y= 691 Is Prime
x= 26 y= 743 Is Prime
x= 27 y= 797 Is Prime
x= 28 y= 853 Is Prime
x= 29 y= 911 Is Prime
x= 30 y= 971 Is Prime
x= 31 y= 1033 Is Prime
x= 32 y= 1097 Is Prime
x= 33 y= 1163 Is Prime
x= 34 y= 1231 Is Prime
x= 35 y= 1301 Is Prime
x= 36 y= 1373 Is Prime
x= 37 y= 1447 Is Prime
x= 38 y= 1523 Is Prime
x= 39 y= 1601 Is Prime
x= 40 y= 1681 Not Prime
Var x,y:real;
begin
read (x,y);
if (x<0) and (y<0) then writeln (abs(x),' ',abs(y)) else
if ((x<0) and (y>=0)) or ((y<0) and (x>=0)) then writeln (x+27,' ',y+27) else
if (x>=0)and (y>=0) then writeln (x-20,' ',y-20);
end.
Program raznost;
var a,b,c,r: integer;
begin
writeln ('Введите трехзначное число');
readln (a);
b:=a div 100;
c:=a mod 10;
if b>c then r:=b-c
else
if b<c then r:=c-b;
writeln ('Разность крайних цифр равна ',r);
end.