def mystery(x):
if not isinstance(x, int) or x < 1:
return False
binary_str = bin(x)[2:]
return binary_str == binary_str[::-1]
def mystery(x):
if not isinstance(x, int) or x < 0:
return False
s = str(x)
if len(s) != 5:
return False
d = [int(c) for c in s]
if sum(d) != 23:
return False
if d[0] * d[4] != d[1] + d[2] + d[3]:
return False
if x % 7 != 3:
return False
if any(d[i] == d[i+1] for i in range(4)):
return False
return d[2] > d[0] > d[4]
def mystery(x):
if not isinstance(x, int) or x < 0:
return False
s = str(x)
n = len(s)
digits = [int(d) for d in s]
return sum(d**n for d in digits) == x
def mystery(x):
if not isinstance(x, str):
return False
if len(x) != 10:
return False
if x[4] != '-' or x[7] != '-':
return False
try:
y = int(x[0:4]); m = int(x[5:7]); d = int(x[8:10])
except:
return False
import datetime
try:
dt = datetime.date(y, m, d)
except:
return False
# Must be a Tuesday
if dt.weekday() != 1:
return False
# Year must be prime
def isp(n):
if n < 2: return False
for i in range(2, int(n**0.5)+1):
if n % i == 0: return False
return True
if not isp(y):
return False
# day * month must equal digit sum of year
if d * m != sum(int(c) for c in str(y)):
return False
# Year must be in this millennium
if y < 2000 or y >= 3000:
return False
return True
def mystery(x):
if not isinstance(x, int) or x < 1:
return False
square = x * x
s = str(square)
n = len(s)
# Try all possible splits of the square's digits
for i in range(1, n):
left = int(s[:i])
right = int(s[i:])
if left + right == x and right > 0:
return True
return False
def mystery(x):
if not isinstance(x, int) or x < 1:
return False
s = str(x)
if len(s) != 7:
return False
if len(set(s)) != 7:
return False
if '0' in s:
return False
for c in s:
if x % int(c) != 0:
return False
digits = [int(c) for c in s]
if digits[0] != max(digits):
return False
if sum(digits) != 36:
return False
if digits[-1] % 2 != 0:
return False
return True
def mystery(x):
if not isinstance(x, int) or x < 10:
return False
s = str(x)
digits = [int(d) for d in s]
# Product of digits must equal count of divisors
product = 1
for d in digits:
product *= d
if product == 0:
return False
# Count divisors
count = 0
for i in range(1, int(x**0.5) + 1):
if x % i == 0:
count += 1
if i != x // i:
count += 1
return product == count
def mystery(x):
if not isinstance(x, int) or x < 1:
return False
# Must be a perfect square
r = int(round(x**0.5))
if r*r != x:
return False
s = str(x)
if len(s) != 4:
return False
digits = [int(c) for c in s]
# Product of digits == 168
p = 1
for d in digits:
p *= d
if p != 168:
return False
# Sum of digits == 18
if sum(digits) != 18:
return False
# Divisible by 7
if x % 7 != 0:
return False
# First digit strictly less than last digit
if digits[0] >= digits[-1]:
return False
return True
def mystery(x):
if not isinstance(x, int) or x < 10:
return False
# Get digit sum
digit_sum = sum(int(d) for d in str(x))
# Count prime factors with multiplicity
n = x
count = 0
d = 2
while d * d <= n:
while n % d == 0:
count += 1
n //= d
d += 1
if n > 1:
count += 1
return digit_sum == count
def mystery(x):
if not isinstance(x, str):
return False
if len(x) != 8:
return False
if not (x.isalpha() and x.islower()):
return False
vals = [ord(c) - ord('a') + 1 for c in x]
if sum(vals) != 80:
return False
if len(set(x)) != 8:
return False
if vals != sorted(vals):
return False
if x[0] != 'b' or x[-1] != 'w':
return False
if vals[3] * vals[4] != 84:
return False
return True