← All Duels

deepseek-v3.2-thinking_vs_claude-sonnet-4-6.jsonl — 10 puzzles

deepseek-v3.2-thinking
-1
vs
claude-sonnet-4-6
0
#1 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            n = int(x)
        except ValueError:
            return False
    elif isinstance(x, int):
        n = x
    else:
        return False
    n = abs(n)
    if n % 7 != 0 or n % 13 != 0:
        return False
    if pow(2, n-1, n) != 1 or pow(5, n-1, n) != 1:
        return False
    return True
1729
101101
Proposer: deepseek-v3.2-thinking Solver: claude-sonnet-4-6
0 vs 0
#2 Solved
def mystery(x):
    if not isinstance(x, str):
        return False
    if not (3 <= len(x) <= 8):
        return False

    # Must be parseable as a positive integer
    try:
        n = int(x)
    except ValueError:
        return False
    if n <= 0:
        return False

    # XOR of ASCII values of each character must be prime
    xor_val = 0
    for c in x:
        xor_val ^= ord(c)

    def is_prime(p):
        if p < 2: return False
        if p == 2: return True
        if p % 2 == 0: return False
        for i in range(3, int(p**0.5) + 1, 2):
            if p % i == 0: return False
        return True

    if not is_prime(xor_val):
        return False

    # Sum of ASCII values must be evenly divisible by the string length
    ascii_sum = sum(ord(c) for c in x)
    return ascii_sum % len(x) == 0
"555"
"159"
Proposer: claude-sonnet-4-6 Solver: deepseek-v3.2-thinking
0 vs 0
#3 Sample Solution Wrong
def mystery(x):
    if not isinstance(x, str):
        return False
    if not (5 <= len(x) <= 10):
        return False
    try:
        n = int(x, 36)
    except ValueError:
        return False
    if n <= 0:
        return False
    import math
    r = math.isqrt(n)
    if r * r != n:
        return False
    b = bin(n)[2:]
    if b != b[::-1]:
        return False
    s = sum(ord(c) for c in x)
    if s < 2:
        return False
    for i in range(2, int(s ** 0.5) + 1):
        if s % i == 0:
            return False
    return True
"000EP"
Proposer: deepseek-v3.2-thinking Solver: claude-sonnet-4-6
-1 vs 0
#4 Solved
def mystery(x):
    if not isinstance(x, str):
        return False

    # Must be exactly 3 characters
    if len(x) != 3:
        return False

    # All characters must be valid octal digits (0-7)
    if not all(c in '01234567' for c in x):
        return False

    # No leading zero
    if x[0] == '0':
        return False

    # Interpret x as both a decimal and an octal number
    n_dec = int(x)
    n_oct = int(x, 8)

    def is_prime(p):
        if p < 2: return False
        if p == 2: return True
        if p % 2 == 0: return False
        for i in range(3, int(p**0.5) + 1, 2):
            if p % i == 0: return False
        return True

    # Both the decimal and octal interpretations must be prime
    if not is_prime(n_dec) or not is_prime(n_oct):
        return False

    # The first digit must equal (second digit + third digit) mod 10
    d0, d1, d2 = int(x[0]), int(x[1]), int(x[2])
    if d0 != (d1 + d2) % 10:
        return False

    return True
"211"
"431"
Proposer: claude-sonnet-4-6 Solver: deepseek-v3.2-thinking
-1 vs 0
#5 Solved
def mystery(x):
    # Convert to int if string
    if isinstance(x, str):
        if not x.isdigit():   # only digits, no sign
            return False
        n = int(x)
    elif isinstance(x, int):
        n = x
    else:
        return False
    
    if n <= 0:
        return False
    
    # primality test
    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
    
    if not is_prime(n):
        return False
    
    # Check if n is a Mersenne prime: n+1 must be a power of 2
    if not ((n + 1) & n == 0 and n + 1 > 0):
        return False
    # exponent k such that n = 2^k - 1
    k = (n + 1).bit_length() - 1
    if not is_prime(k):
        return False
    
    # Binary representation must be a palindrome
    bin_str = bin(n)[2:]
    if bin_str != bin_str[::-1]:
        return False
    
    # Emirp: reverse digits must be a different prime
    dec_str = str(n)
    rev_str = dec_str[::-1]
    rev_n = int(rev_str)
    if rev_n == n or not is_prime(rev_n):
        return False
    
    # Circular prime: all rotations of digits must be prime
    for i in range(len(dec_str)):
        rot = int(dec_str[i:] + dec_str[:i])
        if not is_prime(rot):
            return False
    
    return True
31
31
Proposer: deepseek-v3.2-thinking Solver: claude-sonnet-4-6
-1 vs 0
#6 Solved
def mystery(x):
    if not isinstance(x, str):
        return False

    try:
        n = int(x)
    except:
        return False

    if n <= 1:
        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

    # Must be composite (not prime)
    if is_prime(n):
        return False

    # Must pass Fermat primality test for base 2
    if pow(2, n - 1, n) != 1:
        return False

    # Must pass Fermat primality test for base 3
    if pow(3, n - 1, n) != 1:
        return False

    # Digit sum must be prime
    digit_sum = sum(int(d) for d in str(n))
    if not is_prime(digit_sum):
        return False

    # Number of digits must be prime
    if not is_prime(len(str(n))):
        return False

    return True
'10585'
"10585"
Proposer: claude-sonnet-4-6 Solver: deepseek-v3.2-thinking
-1 vs 0
#7 Solved
def mystery(x):
    # Convert to integer if possible
    if isinstance(x, str):
        if not x.isdigit():
            return False
        n = int(x)
    elif isinstance(x, int):
        n = x
    else:
        return False
    
    # Must be greater than 100
    if n <= 100:
        return False
    
    # Perfect square check
    sqrt_n = int(n ** 0.5)
    if sqrt_n * sqrt_n != n:
        return False
    
    # Decimal palindrome check
    s_dec = str(n)
    if s_dec != s_dec[::-1]:
        return False
    
    # Sum of digits perfect square
    digit_sum = sum(int(d) for d in s_dec)
    sqrt_ds = int(digit_sum ** 0.5)
    if sqrt_ds * sqrt_ds != digit_sum:
        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_dec)
    if not is_prime(num_digits):
        return False
    
    # Square root prime
    if not is_prime(sqrt_n):
        return False
    
    # Smith number: sum of digits of prime factors equals digit_sum
    def digit_sum_of_num(num):
        return sum(int(d) for d in str(num))
    
    factors_sum = 0
    temp = n
    p = 2
    while p * p <= temp:
        while temp % p == 0:
            factors_sum += digit_sum_of_num(p)
            temp //= p
        p += 1 if p == 2 else 2
    if temp > 1:
        factors_sum += digit_sum_of_num(temp)
    if factors_sum != digit_sum:
        return False
    
    # Star number: n = 6*m*(m-1) + 1 for some integer m
    # Equivalent to (2*n+1)/3 being a perfect square with odd square root
    numerator = 2 * n + 1
    if numerator % 3 != 0:
        return False
    t = numerator // 3
    sqrt_t = int(t ** 0.5)
    if sqrt_t * sqrt_t != t:
        return False
    if sqrt_t % 2 != 1:
        return False
    
    # Palindrome in base 3
    def to_base(num, base):
        if num == 0:
            return "0"
        digits = []
        while num:
            digits.append(str(num % base))
            num //= base
        return ''.join(reversed(digits))
    
    base3 = to_base(n, 3)
    if base3 != base3[::-1]:
        return False
    
    # Palindrome in base 7
    base7 = to_base(n, 7)
    if base7 != base7[::-1]:
        return False
    
    return True
121
121
Proposer: deepseek-v3.2-thinking Solver: claude-sonnet-4-6
-1 vs 0
#8 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            n = int(x)
        except ValueError:
            return False
    elif isinstance(x, int):
        n = x
    else:
        return False

    if n <= 1:
        return False

    # Must be odd
    if n % 2 == 0:
        return False

    # Must be a decimal palindrome
    s = str(n)
    if s != s[::-1]:
        return False

    # Must be a Kaprekar number:
    # n^2, when split at any position into two parts, gives parts that sum to n
    sq = n * n
    sq_str = str(sq)
    is_kap = False
    for split in range(1, len(sq_str)):
        right_val = int(sq_str[split:])
        left_val = int(sq_str[:split])
        if right_val > 0 and left_val + right_val == n:
            is_kap = True
            break
    if not is_kap:
        return False

    # Digit sum must be a triangular number (T_k = k*(k+1)/2)
    ds = sum(int(c) for c in s)
    k = 0
    while k * (k + 1) // 2 < ds:
        k += 1
    if k * (k + 1) // 2 != ds:
        return False

    # Number of divisors of n must be a perfect square
    d_count = 0
    i = 1
    while i * i <= n:
        if n % i == 0:
            d_count += 2 if i != n // i else 1
        i += 1
    import math
    sr = math.isqrt(d_count)
    if sr * sr != d_count:
        return False

    # Length of decimal representation must be prime
    def is_prime(p):
        if p < 2: return False
        if p == 2: return True
        if p % 2 == 0: return False
        for i in range(3, int(p**0.5) + 1, 2):
            if p % i == 0: return False
        return True

    if not is_prime(len(s)):
        return False

    return True
55
55
Proposer: claude-sonnet-4-6 Solver: deepseek-v3.2-thinking
-1 vs 0
#9 Solved
def mystery(x):
    # Convert input to integer if possible
    if isinstance(x, str):
        if not x.isdigit():   # only digits, no sign or decimal
            return False
        n = int(x)
    elif isinstance(x, int):
        n = x
    else:
        return False
    
    # Must be greater than 100
    if n <= 100:
        return False
    
    # Helper: primality test
    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
    
    # 1. Must be prime
    if not is_prime(n):
        return False
    
    # 2. Must be a decimal palindrome
    s = str(n)
    if s != s[::-1]:
        return False
    
    # 3. Must be a happy number
    def is_happy(num):
        seen = set()
        while num != 1 and num not in seen:
            seen.add(num)
            num = sum(int(d) ** 2 for d in str(num))
        return num == 1
    
    if not is_happy(n):
        return False
    
    # 4. Binary popcount (number of 1's) must be prime
    popcount = bin(n).count('1')
    if not is_prime(popcount):
        return False
    
    # 5. Must be a centered square number: n = m^2 + (m-1)^2 for some integer m
    # Solve 2m^2 - 2m + 1 - n = 0  →  m = (1 + sqrt(2n-1)) / 2
    import math
    disc = 2 * n - 1
    sqrt_disc = int(math.isqrt(disc))
    if sqrt_disc * sqrt_disc != disc:
        return False
    m = (1 + sqrt_disc) // 2
    if m * m + (m - 1) * (m - 1) != n:
        return False
    
    # 6. Sum of digits must be prime
    digit_sum = sum(int(d) for d in s)
    if not is_prime(digit_sum):
        return False
    
    # 7. Product of digits must be a perfect square
    digit_product = 1
    for d in s:
        digit_product *= int(d)
    sqrt_prod = int(math.isqrt(digit_product))
    if sqrt_prod * sqrt_prod != digit_product:
        return False
    
    return True
313
313
Proposer: deepseek-v3.2-thinking Solver: claude-sonnet-4-6
-1 vs 0
#10 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            n = int(x)
        except ValueError:
            return False
    elif isinstance(x, int):
        n = x
    else:
        return False

    if n <= 1:
        return False

    def is_prime(p):
        if p < 2: return False
        if p == 2: return True
        if p % 2 == 0: return False
        for i in range(3, int(p**0.5) + 1, 2):
            if p % i == 0: return False
        return True

    # Must be composite
    if is_prime(n):
        return False

    # Must pass Fermat primality test for bases 2 and 3
    if pow(2, n - 1, n) != 1:
        return False
    if pow(3, n - 1, n) != 1:
        return False

    # Must be expressible as a sum of two positive perfect cubes in at least 2 different ways
    ways = 0
    a = 1
    while a * a * a * 2 < n:
        remainder = n - a * a * a
        b = round(remainder ** (1/3))
        for candidate in range(max(a + 1, b - 2), b + 3):
            if candidate * candidate * candidate == remainder:
                ways += 1
                break
        a += 1
    if ways < 2:
        return False

    # Digit sum of n must be prime
    digit_sum = sum(int(d) for d in str(n))
    if not is_prime(digit_sum):
        return False

    return True
1729
1729
Proposer: claude-sonnet-4-6 Solver: deepseek-v3.2-thinking
-1 vs 0