← All Duels

claude-haiku-4-5_vs_gemini-3.1-pro-preview.jsonl — 10 puzzles

claude-haiku-4-5
0
vs
gemini-3.1-pro-preview
0
#1 Solved
def mystery(x):
    x = int(x) if isinstance(x, str) else x
    x = abs(x)
    seen = set()
    while x != 1 and x not in seen:
        seen.add(x)
        x = sum(int(d)**2 for d in str(x))
    return x == 1
10
7
Proposer: claude-haiku-4-5 Solver: gemini-3.1-pro-preview
0 vs 0
#2 Solved
import math

def mystery(x):
    if not isinstance(x, list) or len(x) != 5:
        return False
    if not all(isinstance(i, int) and i > 0 for i in x):
        return False
        
    # Elements must be strictly increasing
    if not all(x[i] < x[i+1] for i in range(4)):
        return False
        
    # The five numbers must be collectively coprime
    g = x[0]
    for v in x[1:]:
        g = math.gcd(g, v)
        
    if g != 1:
        return False
        
    # The core condition
    return sum(v**5 for v in x[:4]) == x[4]**5
[27, 84, 110, 133, 144]
[27, 84, 110, 133, 144]
Proposer: gemini-3.1-pro-preview Solver: claude-haiku-4-5
0 vs 0
#3 Solved
def mystery(x):
    if not isinstance(x, (int, str)):
        return False
    
    x = int(x) if isinstance(x, str) else x
    
    if x <= 0:
        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(x):
        return False
    
    reversed_x = int(str(x)[::-1])
    
    if not is_prime(reversed_x):
        return False
    
    return (x + reversed_x) % 11 == 0
13
13
Proposer: claude-haiku-4-5 Solver: gemini-3.1-pro-preview
0 vs 0
#4 Solved
def mystery(x):
    if not isinstance(x, str):
        return False
        
    parts = x.replace(" ", "").split(',')
    if len(parts) != 3:
        return False
        
    try:
        a, b, c = [int(p) for p in parts]
    except ValueError:
        return False
        
    # We require one specific negative and two positive numbers
    if a >= 0 or b <= 0 or c <= 0:
        return False
        
    if len(set([abs(a), b, c])) != 3:
        return False
        
    # Numbers must be extremely large
    if max(abs(a), b, c) < 10**16:
        return False
        
    # Symmetric polynomials
    S = a + b + c
    P = a*b + b*c + c*a
    
    # The core condition
    return S * (S**2 - 3*P) + 3*a*b*c == 42
"-80538738812075974, 80435758145817515, 12602123297335631"
"-80538738812075974, 80435758145817515, 12602123297335631"
Proposer: gemini-3.1-pro-preview Solver: claude-haiku-4-5
0 vs 0
#5 Solved
def mystery(x):
    if not isinstance(x, int) or x < 50:
        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(x):
        return False
    
    # Sophie Germain prime: both p and 2p+1 must be prime
    if not is_prime(2 * x + 1):
        return False
    
    # The sum of digits must be prime
    digit_sum = sum(int(d) for d in str(x))
    if not is_prime(digit_sum):
        return False
    
    # Additional constraint: x ≡ 11 (mod 12)
    if x % 12 != 11:
        return False
    
    return True
83
83
Proposer: claude-haiku-4-5 Solver: gemini-3.1-pro-preview
0 vs 0
#6 Solver Failed
def mystery(x):
    if not isinstance(x, str) or len(x) != 3:
        return False
    
    # Must be a palindrome
    if x != x[::-1]:
        return False
        
    # Uppercase must NOT be a palindrome
    if x.upper() == x.upper()[::-1]:
        return False
        
    # The character sum must be exactly 690
    if sum(ord(c) for c in x) != 690:
        return False
        
    return True
"èéè"
"a\u01F0a"
Proposer: gemini-3.1-pro-preview Solver: claude-haiku-4-5
0 vs 1
#7 Solved
def mystery(x):
    if not isinstance(x, (int, str)):
        return False
    
    x = int(x) if isinstance(x, str) else x
    
    if x <= 0:
        return False
    
    s = str(x)
    
    # Must be a 4-digit number
    if len(s) != 4:
        return False
    
    # Check polydivisibility: first k digits form a number divisible by k
    for k in range(1, 5):
        first_k = int(s[:k])
        if first_k % k != 0:
            return False
    
    # All digits must be even
    if not all(int(d) % 2 == 0 for d in s):
        return False
    
    # Digit sum must be divisible by 4
    if sum(int(d) for d in s) % 4 != 0:
        return False
    
    return True
2460
2280
Proposer: claude-haiku-4-5 Solver: gemini-3.1-pro-preview
0 vs 1
#8 Sample Solution Wrong
import unicodedata

def mystery(x):
    if not isinstance(x, str) or len(x) != 2:
        return False
        
    if x[0] == x[1]:
        return False
        
    exp = unicodedata.normalize('NFKD', x)
    
    if len(exp) != 40:
        return False
        
    if exp.count(' ') != 6:
        return False
        
    return True
"\ufdfa\ufdfd"
Proposer: gemini-3.1-pro-preview Solver: claude-haiku-4-5
0 vs 0
#9 Solved
def mystery(x):
    if not isinstance(x, (int, str)):
        return False
    
    x = int(x) if isinstance(x, str) else x
    
    if x < 0:
        return False
    
    s = str(x)
    n = len(s)
    
    # x must be an Armstrong number (narcissistic number)
    if sum(int(d)**n for d in s) != x:
        return False
    
    # Must have exactly 3 digits
    if n != 3:
        return False
    
    # All digits must be different
    if len(set(s)) != 3:
        return False
    
    # Sum of digits must be a perfect square
    digit_sum = sum(int(d) for d in s)
    sqrt_sum = int(digit_sum ** 0.5)
    if sqrt_sum * sqrt_sum != digit_sum:
        return False
    
    return True
153
153
Proposer: claude-haiku-4-5 Solver: gemini-3.1-pro-preview
0 vs 0
#10 Solved
def mystery(x):
    if not isinstance(x, str) or len(x) != 4:
        return False
        
    # The string itself must be a palindrome
    if x != x[::-1]:
        return False
        
    # When encoded to UTF-8, it must LOSE its palindromic property
    enc8 = x.encode('utf-8')
    if enc8 == enc8[::-1]:
        return False
        
    # However, when encoded to UTF-16LE, it must REMAIN a palindrome
    enc16 = x.encode('utf-16le')
    if enc16 != enc16[::-1]:
        return False
        
    # The sum of the character ordinals must be exactly 61680
    if sum(ord(c) for c in x) != 61680:
        return False
        
    # It must contain exactly two distinct characters
    if len(set(x)) != 2:
        return False
        
    return True
'\u1e1e\u5a5a\u5a5a\u1e1e'
"\u0a0a\u6e6e\u6e6e\u0a0a"
Proposer: gemini-3.1-pro-preview Solver: claude-haiku-4-5
0 vs 0