← All Duels

grok-4-fast-reasoning_vs_claude-haiku-4-5.jsonl — 10 puzzles

grok-4-fast-reasoning
0
vs
claude-haiku-4-5
0
#1 Solved
def mystery(x):
    try:
        s = str(x)
    except:
        return False
    if len(s) < 3:
        return False
    temp = [ord(c) for c in s]
    sum_temp = sum(temp)
    if sum_temp % 10 != 0:
        return False
    product = 1
    for t in temp:
        if t == 0:
            product = 0
            break
        product *= (t % 10)
    if product == 0:
        return False
    # Additional confusing computation
    rev_temp = temp[::-1]
    diff_sum = sum(abs(temp[i] - rev_temp[i]) for i in range(len(temp)))
    if diff_sum % 2 != 0:
        return False
    return all(s[i] == s[-1 - i] for i in range(len(s) // 2))
303
484
Proposer: grok-4-fast-reasoning Solver: claude-haiku-4-5
0 vs 0
#2 Solved
def mystery(x):
    try:
        s = str(x)
    except:
        return False
    
    if s.startswith('-'):
        s = s[1:]
    
    if len(s) < 2:
        return False
    
    # Check uniqueness of digits
    if len(s) != len(set(s)):
        return False
    
    # Check alternation of digit parity
    is_odd = lambda c: int(c) % 2 == 1
    for i in range(len(s) - 1):
        if is_odd(s[i]) == is_odd(s[i+1]):
            return False
    
    # Check sum divisibility
    if sum(int(d) for d in s) % 3 != 0:
        return False
    
    # Check first digit constraint
    if int(s[0]) >= 8:
        return False
    
    # Check last digit constraint
    if s[-1] in ['0', '1']:
        return False
    
    return True
12
12
Proposer: claude-haiku-4-5 Solver: grok-4-fast-reasoning
0 vs 0
#3 Solved
def mystery(x):
    try:
        s = str(x).lower().strip()
    except:
        return False
    if not all(c.isalpha() for c in s):
        return False
    if len(s) < 3 or len(s) % 2 == 0:
        return False
    # Confusing: compute sum ord
    ords = [ord(c) for c in s]
    total = sum(ords)
    if total % 7 != 0:
        return False
    # Product of (ord - ord('a') +1)
    prod = 1
    for o in ords:
        d = o - ord('a') + 1
        prod *= d
        if prod > 10000:
            prod = 0
            break
    if prod == 0 or prod % 5 != 0:
        return False
    # More confusion: reverse ords sum diff even
    rev_ords = ords[::-1]
    diff = sum(abs(ords[i] - rev_ords[i]) for i in range(len(ords)))
    if diff % 2 != 0:
        return False
    # Finally, the key condition hidden among the noise
    return s == s[::-1]
"mom"
"ded"
Proposer: grok-4-fast-reasoning Solver: claude-haiku-4-5
0 vs 0
#4 Solved
def mystery(x):
    from collections import Counter
    try:
        s = str(x)
    except:
        return False
    
    if s.startswith('-'):
        s = s[1:]
    
    if len(s) < 2:
        return False
    
    num = int(s)
    power = len(s)
    armstrong_sum = sum(int(d) ** power for d in s)
    if armstrong_sum != num:
        return False
    
    digit_sum = sum(int(d) for d in s)
    if digit_sum % 2 != 0:
        return False
    
    digit_counts = Counter(s)
    if any(count > 2 for count in digit_counts.values()):
        return False
    
    return True
370
370
Proposer: claude-haiku-4-5 Solver: grok-4-fast-reasoning
0 vs 0
#5 Solved
def mystery(x):
    try:
        s = str(x).strip()
    except:
        return False
    if s.startswith('-'):
        return False
    if not s.isdigit() or len(s) < 3:
        return False
    digits = [int(c) for c in s]
    if len(set(s)) != len(s):
        return False
    sum_d = sum(digits)
    if sum_d % 3 != 0:
        return False
    prod = 1
    for d in digits:
        prod *= d
        if prod == 0:
            break
    if prod == 0 or prod % 7 != 0:
        return False
    # Confusing: check sum of squares modulo 11
    sum_sq = sum(d ** 2 for d in digits)
    if sum_sq % 11 != 0:
        return False
    # More confusion: alternating sum parity
    alt_sum = sum(digits[i] * (1 if i % 2 == 0 else -1) for i in range(len(digits)))
    if alt_sum % 2 != 0:
        return False
    # Useless computation to distract
    rev_digits = digits[::-1]
    diff_prod = 1
    for i in range(len(digits)):
        diff = abs(digits[i] - rev_digits[i])
        diff_prod *= (diff + 1)
    if diff_prod % 5 == 0:
        return False  # Actually filters some, but for our solution it's ok
    n = int(s)
    from math import sqrt
    root = int(sqrt(n) + 0.5)
    if root * root != n:
        return False
    return True
576
576
Proposer: grok-4-fast-reasoning Solver: claude-haiku-4-5
0 vs 0
#6 Solved
def mystery(x):
    try:
        s = str(x).strip()
    except:
        return False
    
    if s.startswith('-'):
        return False
    
    if not s.isdigit() or len(s) < 2:
        return False
    
    n = int(s)
    digits = [int(c) for c in s]
    
    # Red herring: sum of digits must be odd
    if sum(digits) % 2 == 0:
        return False
    
    # Red herring: no zeros allowed
    if 0 in digits:
        return False
    
    # Red herring: all digits must be unique
    if len(set(digits)) != len(digits):
        return False
    
    # Red herring: product of digits divisible by 3
    product = 1
    for d in digits:
        product *= d
    if product % 3 != 0:
        return False
    
    # Red herring: first digit constraint
    if digits[0] >= 5:
        return False
    
    # Red herring: last digit constraint  
    if digits[-1] <= 3:
        return False
    
    # Red herring: product modulo check
    if product % 7 == 0:
        return False
    
    # Core condition: each digit raised to consecutive powers (1, 2, 3, ...)
    calculated = sum(d ** (i + 1) for i, d in enumerate(digits))
    return calculated == n
135
135
Proposer: claude-haiku-4-5 Solver: grok-4-fast-reasoning
0 vs 0
#7 Solved
def mystery(x):
    try:
        s = str(x).strip()
    except:
        return False
    if s.startswith('-') or not s.isdigit() or len(s) < 3:
        return False
    digits = [int(c) for c in s]
    if 0 in digits:
        return False
    if len(set(s)) != len(s):
        return False
    if sum(digits) % 9 != 0:
        return False
    prod = 1
    for d in digits:
        prod *= d
    if prod % 16 != 0:
        return False
    alt = sum(digits[i] * (1 if i % 2 == 0 else -1) for i in range(len(digits)))
    if alt % 2 != 0:
        return False
    sum_sq = sum(d ** 2 for d in digits)
    if sum_sq % 5 != 3:
        return False
    rev = digits[::-1]
    diff_sum = sum(abs(digits[i] - rev[i]) for i in range(len(digits)))
    if diff_sum % 2 != 0:
        return False
    # Confusing computation: sum of cubes modulo something
    sum_cubes = sum(d ** 3 for d in digits)
    if sum_cubes % 13 != 6:
        return False
    # More distraction: check if product of (d + i) or similar
    pos_prod = 1
    for i, d in enumerate(digits):
        pos_prod *= (d + i + 1)
    if pos_prod % 7 == 0:
        return False
    n = int(s)
    # Hidden key condition
    root = round(n ** (1 / 3))
    return root ** 3 == n
1728
1728
Proposer: grok-4-fast-reasoning Solver: claude-haiku-4-5
0 vs 0
#8 Solved
def mystery(x):
    try:
        s = str(x).strip()
    except:
        return False
    
    if s.startswith('-') or not s.isdigit() or len(s) < 3:
        return False
    
    n = int(s)
    digits = [int(c) for c in s]
    
    # Red herring: sum must be divisible by 3
    if sum(digits) % 3 != 0:
        return False
    
    # Red herring: no repeated digits
    if len(set(digits)) != len(digits):
        return False
    
    # Red herring: product of digits must be even
    product = 1
    for d in digits:
        product *= d
    if product % 2 != 0:
        return False
    
    # Red herring: first digit must be odd
    if digits[0] % 2 == 0:
        return False
    
    # Red herring: last digit must be even
    if digits[-1] % 2 == 1:
        return False
    
    # Red herring: alternating sum must be positive
    alt_sum = sum(digits[i] * (1 if i % 2 == 0 else -1) for i in range(len(digits)))
    if alt_sum <= 0:
        return False
    
    # Red herring: sum of squares must be odd
    sum_sq = sum(d ** 2 for d in digits)
    if sum_sq % 2 == 0:
        return False
    
    # Core condition: no zeros allowed
    if 0 in digits:
        return False
    
    # Core condition: each digit must divide the number
    for d in digits:
        if n % d != 0:
            return False
    
    return True
324
126
Proposer: claude-haiku-4-5 Solver: grok-4-fast-reasoning
0 vs 0
#9 Solved
def mystery(x):
    try:
        s = str(x).strip()
    except:
        return False
    
    if s.startswith('-') or not s.isdigit() or len(s) < 3:
        return False
    
    digits = [int(c) for c in s]
    n = int(s)
    
    # Red herring: sum of digits modulo 5
    if sum(digits) % 5 != 0:
        return False
    
    # Red herring: no zeros
    if 0 in digits:
        return False
    
    # Red herring: all unique digits
    if len(set(s)) != len(s):
        return False
    
    # Red herring: first digit odd
    if digits[0] % 2 == 0:
        return False
    
    # Red herring: last digit odd
    if digits[-1] % 2 == 0:
        return False
    
    # Red herring: product of digits modulo 4
    product = 1
    for d in digits:
        product *= d
    if product % 4 != 0:
        return False
    
    # Red herring: sum of squares modulo 6
    sum_sq = sum(d ** 2 for d in digits)
    if sum_sq % 6 != 0:
        return False
    
    # Red herring: alternating sum even
    alt_sum = sum(digits[i] * (1 if i % 2 == 0 else -1) for i in range(len(digits)))
    if alt_sum % 2 != 0:
        return False
    
    # Red herring: differences with reverse even sum
    rev_digits = digits[::-1]
    diff_sum = sum(abs(digits[i] - rev_digits[i]) for i in range(len(digits)))
    if diff_sum % 2 != 0:
        return False
    
    # More distraction: Armstrong-like sum modulo 13
    power = len(s)
    arm_sum = sum(d ** power for d in digits)
    if arm_sum % 13 != 8:
        return False
    
    # Additional confusion: product of (d + 1) modulo 7
    pos_prod = 1
    for d in digits:
        pos_prod *= (d + 1)
    if pos_prod % 7 == 0:
        return False
    
    # Core condition: sum of factorials of digits equals n
    def factorial(k):
        if k == 0 or k == 1:
            return 1
        res = 1
        for i in range(2, k + 1):
            res *= i
        return res
    
    fact_sum = sum(factorial(d) for d in digits)
    return fact_sum == n
145
145
Proposer: grok-4-fast-reasoning Solver: claude-haiku-4-5
0 vs 0
#10 Solved
def mystery(x):
    try:
        s = str(x).strip()
    except:
        return False
    
    if s.startswith('-') or not s.isdigit() or len(s) < 3:
        return False
    
    n = int(s)
    digits = [int(c) for c in s]
    
    # Red herring: sum of digits must be divisible by 3
    if sum(digits) % 3 != 0:
        return False
    
    # Red herring: product of digits must be nonzero
    product = 1
    for d in digits:
        product *= d
    if product == 0:
        return False
    
    # Red herring: sum of squares modulo 8
    sum_sq = sum(d ** 2 for d in digits)
    if sum_sq % 8 != 6:
        return False
    
    # Red herring: alternating sum must be even
    alt_sum = sum(digits[i] * (1 if i % 2 == 0 else -1) for i in range(len(digits)))
    if alt_sum % 2 != 0:
        return False
    
    # Red herring: no digit should be 0
    if 0 in digits:
        return False
    
    # Red herring: first digit must be less than 8
    if digits[0] >= 8:
        return False
    
    # Red herring: sum of cubes modulo 13
    sum_cubes = sum(d ** 3 for d in digits)
    if sum_cubes % 13 != 1:
        return False
    
    # Red herring: maximum digit should be at least 5
    if max(digits) < 5:
        return False
    
    # Red herring: last digit must be odd
    if digits[-1] % 2 == 0:
        return False
    
    # Red herring: digit frequency check
    from collections import Counter
    freq = Counter(digits)
    if any(count > 2 for count in freq.values()):
        return False
    
    # Core condition: Kaprekar number
    # A number whose square can be split into two parts that sum to the original number
    square = n * n
    square_str = str(square)
    
    for i in range(1, len(square_str)):
        left_part = square_str[:i]
        right_part = square_str[i:]
        
        left_num = int(left_part)
        right_num = int(right_part) if right_part else 0
        
        if left_num + right_num == n:
            return True
    
    return False
297
297
Proposer: claude-haiku-4-5 Solver: grok-4-fast-reasoning
0 vs 0