Ниже на двух языках программирования записан алгоритм. Получив на вход число , этот алгоритм печатает два числа:
и
. Укажите наибольшее число
, при вводе которого алгоритм печатает два числа:
и
.
<img alt="|—————————|———————|—————————————| |Pascal |P ython |C + + | |var x,-S, N-: integer;——|x-=—int(input())——|#include——————-| | | | | |begin |S = 0 |using namespace std; | | readln(x ); |N = 0 |int main (){ | | S := 0; |while x > 0 : | int x, S, N; | | | | | | N := 0; | N = N + 1 | cin > > x; | | while x > 0 do | S = S + (x % 2) | S = 0; | | begin | if N % 2 > 0 : | N = 0; | | | | | | N := N + 1; | S = S + (x % 4)| while (x > 0){ | | S := S + (x mod 2); | x = x ∕∕ 2 | N = N + 1; | | if N mod 2 > 0 then |print(N ) | S = S + (x % 2); | | S := S + (x mod 4);|print(S ) | if (N % 2 > 0){ | | | | | | x := x div 2; | | S = S + (x % 4); | | end; | | } | | writeln(N ); | | x = x ∕ 2; | | | | | | writeln(S); | | } | |end. | | cout < < N < < endl << S <
for i in range(1000000):
x = i
S, N = 0, 0
while x > 0:
N += 1
S += x % 2
if N % 2 > 0:
S += x % 4
x //= 2
if N == 6 and S == 6:
print(i)
Ответ: 40