def mystery(x):
s = str(x)
if len(s) < 2:
return False
# Check if palindrome
if s != s[::-1]:
return False
# Check if sum of digits is prime
digits = [int(c) for c in s if c.isdigit()]
if not digits:
return False
digit_sum = sum(digits)
if digit_sum < 2:
return False
for i in range(2, int(digit_sum**0.5) + 1):
if digit_sum % i == 0:
return False
return True
def mystery(x):
s = str(x)
if len(s) != 9:
return False
if not s.isdigit():
return False
n = int(s)
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
a, b = 0, 1
idx = 1
while b < n:
a, b = b, a + b
idx += 1
if b != n:
return False
if idx < 2:
return False
for i in range(2, int(idx**0.5) + 1):
if idx % i == 0:
return False
dsum = sum(int(c) for c in s)
if dsum < 2:
return False
for i in range(2, int(dsum**0.5) + 1):
if dsum % i == 0:
return False
return True
def mystery(x):
s = str(x)
if not s.isdigit():
return False
if len(s) < 3:
return False
n = int(s)
digit_sum = sum(int(c) for c in s)
if n != digit_sum ** 3:
return False
if digit_sum < 4:
return False
is_prime = True
if digit_sum < 2:
is_prime = False
for i in range(2, int(digit_sum**0.5) + 1):
if digit_sum % i == 0:
is_prime = False
break
if is_prime:
return False
return True
def mystery(x):
# Convert to string to handle both int and str
s = str(x)
if not s.isdigit():
return False
n = int(s)
if n < 2:
return False
# Must be odd
if n % 2 == 0:
return False
# Helper: primality test
def is_prime(m):
if m < 2:
return False
if m == 2:
return True
if m % 2 == 0:
return False
for i in range(3, int(m**0.5) + 1, 2):
if m % i == 0:
return False
return True
# Not prime (composite)
if is_prime(n):
return False
# Digit sum and product
digits = [int(c) for c in s]
digit_sum = sum(digits)
# Check digit sum is Fibonacci
def is_fibonacci(num):
v = 5 * num * num
def is_sq(k):
r = int(k**0.5)
return r * r == k
return is_sq(v + 4) or is_sq(v - 4)
if not is_fibonacci(digit_sum):
return False
# Digit product perfect square
prod_val = 1
for d in digits:
prod_val *= d
def is_perfect_square(k):
if k < 0:
return False
r = int(k**0.5)
return r * r == k
if not is_perfect_square(prod_val):
return False
# Check Carmichael number using Korselt's criterion
def is_carmichael(num):
if is_prime(num):
return False
factors = []
temp = num
p = 2
while p * p <= temp:
if temp % p == 0:
factors.append(p)
while temp % p == 0:
temp //= p
p += 1 if p == 2 else 2
if temp > 1:
factors.append(temp)
for p in factors:
if (num - 1) % (p - 1) != 0:
return False
return True
if not is_carmichael(n):
return False
# Number of distinct prime factors must be prime
def distinct_prime_factors(num):
factors = set()
temp = num
p = 2
while p * p <= temp:
if temp % p == 0:
factors.add(p)
while temp % p == 0:
temp //= p
p += 1 if p == 2 else 2
if temp > 1:
factors.add(temp)
return factors
factors_set = distinct_prime_factors(n)
num_factors = len(factors_set)
if not is_prime(num_factors):
return False
return True
def mystery(x):
s = str(x)
if not s.isdigit():
return False
if len(s) < 2:
return False
n = int(s)
# Check if it's a Kaprekar number
n_squared = n * n
s_squared = str(n_squared)
# Try all possible splits of the squared number
is_kaprekar = False
for i in range(1, len(s_squared)):
left = s_squared[:i]
right = s_squared[i:]
left_num = int(left) if left else 0
right_num = int(right) if right else 0
if right_num > 0 and left_num + right_num == n:
is_kaprekar = True
break
if not is_kaprekar:
return False
# Number must be odd
if n % 2 == 0:
return False
return True
def mystery(x):
s = str(x)
# Must be all digits
if not s.isdigit():
return False
# Palindrome check
if s != s[::-1]:
return False
# Number of digits prime
num_digits = len(s)
if num_digits < 2:
return False
def is_prime(n):
if n < 2:
return False
if n == 2:
return True
if n % 2 == 0:
return False
for i in range(3, int(n**0.5) + 1, 2):
if n % i == 0:
return False
return True
if not is_prime(num_digits):
return False
# Sum of digits prime
digits = [int(c) for c in s]
digit_sum = sum(digits)
if not is_prime(digit_sum):
return False
# Product of digits perfect square
product = 1
for d in digits:
product *= d
if product < 0:
return False
root = int(product**0.5)
if root * root != product:
return False
# Binary representation palindrome
n = int(s)
binary = bin(n)[2:]
if binary != binary[::-1]:
return False
# Number of ones in binary prime
ones = binary.count('1')
if not is_prime(ones):
return False
# Number of zeros in binary perfect square
zeros = binary.count('0')
root_z = int(zeros**0.5)
if root_z * root_z != zeros:
return False
return True
def mystery(x):
s = str(x)
if not s.isdigit():
return False
n = int(s)
if n < 2:
return False
def is_prime(num):
if num < 2:
return False
if num == 2:
return True
if num % 2 == 0:
return False
for i in range(3, int(num**0.5) + 1, 2):
if num % i == 0:
return False
return True
# Check if n can be expressed as sum of two cubes in at least two ways
ways = []
limit = int(n**(1/3)) + 1
for a in range(1, limit):
for b in range(a, limit):
if a**3 + b**3 == n:
ways.append((a, b))
if len(ways) < 2:
return False
# Sum of digits must be prime
digit_sum = sum(int(c) for c in s)
if not is_prime(digit_sum):
return False
# Number must be odd
if n % 2 == 0:
return False
# Count divisors - must be a perfect cube
divisor_count = 0
for i in range(1, int(n**0.5) + 1):
if n % i == 0:
divisor_count += 1
if i != n // i:
divisor_count += 1
# Check if divisor_count is a perfect cube
cube_root = round(divisor_count**(1/3))
if cube_root**3 != divisor_count:
return False
return True
def mystery(x):
s = str(x)
if not s.isdigit():
return False
n = int(s)
if n <= 0:
return False
# Must be odd
if n % 2 == 0:
return False
# Decimal palindrome
if s != s[::-1]:
return False
# Number of digits prime
def is_prime(num):
if num < 2:
return False
if num == 2:
return True
if num % 2 == 0:
return False
for i in range(3, int(num**0.5) + 1, 2):
if num % i == 0:
return False
return True
num_digits = len(s)
if not is_prime(num_digits):
return False
# Composite (not prime)
if is_prime(n):
return False
# Product of digits perfect square
digits = [int(c) for c in s]
prod = 1
for d in digits:
prod *= d
def is_square(k):
if k < 0:
return False
r = int(k**0.5)
return r * r == k
if not is_square(prod):
return False
# Binary palindrome
binary = bin(n)[2:]
if binary != binary[::-1]:
return False
# Number of ones and zeros perfect cubes
ones = binary.count('1')
zeros = binary.count('0')
def is_cube(k):
if k < 0:
return False
r = int(round(k ** (1/3)))
return r ** 3 == k
if not is_cube(ones):
return False
if not is_cube(zeros):
return False
return True
def mystery(x):
s = str(x)
if not s.isdigit():
return False
n = int(s)
if n < 10:
return False
# Must be odd
if n % 2 == 0:
return False
# Helper: check if triangular and return index
def triangular_index(num):
# Triangular: num = k(k+1)/2
# Solving: k = (-1 + sqrt(1 + 8*num)) / 2
k = int((-1 + (1 + 8*num)**0.5) / 2)
if k * (k + 1) // 2 == num:
return k
return None
k = triangular_index(n)
if k is None:
return False
# Triangular index must be even
if k % 2 != 0:
return False
# Number must be palindrome
if s != s[::-1]:
return False
# Sum of digits must be prime
def is_prime(num):
if num < 2:
return False
if num == 2:
return True
if num % 2 == 0:
return False
for i in range(3, int(num**0.5) + 1, 2):
if num % i == 0:
return False
return True
digit_sum = sum(int(c) for c in s)
if not is_prime(digit_sum):
return False
# Product of digits must be perfect square
prod = 1
for c in s:
prod *= int(c)
root = int(prod**0.5)
if root * root != prod:
return False
return True
def mystery(x):
s = str(x)
if not s.isdigit():
return False
n = int(s)
if n < 10:
return False
# Odd
if n % 2 == 0:
return False
# Decimal palindrome
if s != s[::-1]:
return False
# Number of digits prime
def is_prime(num):
if num < 2:
return False
if num == 2:
return True
if num % 2 == 0:
return False
for i in range(3, int(num**0.5) + 1, 2):
if num % i == 0:
return False
return True
num_digits = len(s)
if not is_prime(num_digits):
return False
# Composite
if is_prime(n):
return False
# Sum of digits triangular
digits = [int(c) for c in s]
digit_sum = sum(digits)
def is_triangular(num):
k = int((2 * num) ** 0.5)
return k * (k + 1) // 2 == num
if not is_triangular(digit_sum):
return False
# Product of digits perfect square
prod = 1
for d in digits:
prod *= d
def is_perfect_square(num):
if num < 0:
return False
r = int(num ** 0.5)
return r * r == num
if not is_perfect_square(prod):
return False
# Binary palindrome
binary = bin(n)[2:]
if binary != binary[::-1]:
return False
# Number of ones in binary is perfect number
ones = binary.count('1')
def is_perfect_number(num):
if num < 2:
return False
div_sum = 1
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
div_sum += i
if i != num // i:
div_sum += num // i
return div_sum == num
if not is_perfect_number(ones):
return False
# Number of zeros in binary is perfect square
zeros = binary.count('0')
if not is_perfect_square(zeros):
return False
return True