Python
Объяснение:
код:
import random
n = random.randint(10, 100)
t = []
p = []
for i in range(1, n):
if n % i == 0:
i = str(i)
t += i
i = int(i)
for k in range(2, i):
if i % k == 0:
i = str(i)
p += i
break
t = list(map(int, t))
p = list(map(int, p))
for x in p:
if x in t:
t.remove(x)
t.remove(1)
if len(t) == 0:
t.append(n)
print(*t)
else:
s = [str(x) for x in t]
print('simple', '(', n, ')', '=', *s)
Python
Объяснение:
код:
import random
n = random.randint(10, 100)
t = []
p = []
for i in range(1, n):
if n % i == 0:
i = str(i)
t += i
i = int(i)
for k in range(2, i):
if i % k == 0:
i = str(i)
p += i
break
t = list(map(int, t))
p = list(map(int, p))
for x in p:
if x in t:
t.remove(x)
t.remove(1)
if len(t) == 0:
t.append(n)
print(*t)
else:
s = [str(x) for x in t]
print('simple', '(', n, ')', '=', *s)
Поделитесь своими знаниями, ответьте на вопрос:
Значение арифметического выражения: 8^511 – 4^511 + 2^511 – 511 записали в системе счисления с основанием 2. Сколько значащих нулей в этой записи?
Число в двоичной системе счисления выглядит как единица и n нулей за ней.
То есть у числа ровно 1533 значащих нуля, а у числа их ровно 1022.
Разница же таких чисел порождает единицы между первыми единицами изначальных чисел. Например, . Появилось 5-3 = 2 единицы и осталось 3 (от последнего числа) значащих нуля.
Зная это, мы можем разобраться, сколько значащих нулей в загаданном числе.
даёт нам 1022 значащих 0 и 511 единиц перед ними.
даёт нам 9 значащих 0 и 502 единицы перед ними.
даёт нам 0 значащих 0 и 1 единицу перед ними (просто единица).
Теперь сложение.
Начинаем с самых больших разрядов. Понижаясь, вычитаем количество образовавшихся в середине единиц.
1022 - 502 - 1 = 519 - ответ.