Задача #3392
Системы счисления
(О. Лысенков) Определите в 36-ричной записи числа количество цифр с числовым значением, кратным либо 5, либо 3, но не 5 и 3 одновременно.
.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
48
#1 способ
n = 30 * 36 ** 231 + 18 * 6 ** 101 - 3 * 36 ** 45 - 2357
count = 0
while n != 0:
ost = n % 36
if ((ost % 5 == 0) + (ost % 3 == 0)) == 1: #так как логическое либо, либо - исключающее или(xor),
# то необходимо, чтобы только одно из двух условий выполнялось,
#поэтому, так как в python true + true = 2, true + false = 1, false + true = 1, false + false = 0,
#результаты обоих условий складываются и после происходит проверка, что их сумма равна 1
count += 1
n //= 36
print(count)
#2 способ
n = 30 * 36 ** 231 + 18 * 6 ** 101 - 3 * 36 ** 45 - 2357
count = 0
a = []
while n != 0:
a = [n % 36] + a
n //= 36
for i in a:
if ((i % 5 == 0) + (i % 3 == 0)) == 1:# #так как логическое либо, либо - исключающее или(xor),
# то необходимо, чтобы только одно из двух условий выполнялось,
#поэтому, так как в python true + true = 2, true + false = 1, false + true = 1, false + false = 0,
#результаты обоих условий складываются и после происходит проверка, что их сумма равна 1
count += 1
print(count)