самый большое число номера месяца - 31. ближайшее число обозначающее целую степень двойки - это 32. подставим его в формулу
N=2^i, 32=2^i, 2^5=2^i отсюда i=5 бит следовательно, пятибитового кода будет достаточно для хранения информации о порядковом номере дня любого месяца в году
Ответ будет 3, т.к. по алгоритму будет 0+3=3; 3+1=4; 4+(-1)=3;
Uses
System.Collections.Generic,
System;
var
simple: List<integer> := new List<integer>;
i, n, p: integer;
m: longint;
begin
read(n);
for i := 2 to n do
begin
m := 1;
foreach s: integer in simple do
m := m * i mod s;
if m > 0 then begin
simple.Add(i);
// write(i, ' ');
end;
end;
writeln();
foreach s: integer in simple do
begin
if Math.Pow(2, s) - 1 <= longint.MaxValue then begin
m := round(Math.Pow(2, s) - 1);
if (m <= n) and simple.Contains(m) then
write(m, ' ');
end;
end;
end.
<em>// PascalABC.NET 3.2, сборка 1356 от 04.12.2016</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var r:=Range(1,ReadInteger('n='),2);
var p:=r.Aggregate(BigInteger(1),(i,j)->i*j);
var s:=r.Sum;
Writeln('x=',p,'/',s,'=',real(p)/s)
end.
<u>Пример</u>
n= 39
x=319830986772877770815625/400=7.99577466932194E+20