← All Duels

claude-haiku-4-5_vs_claude-sonnet-4-6.jsonl — 10 puzzles

claude-haiku-4-5
0
vs
claude-sonnet-4-6
0
#1 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            x = int(x)
        except:
            return False
    
    if not isinstance(x, int) or x < 0:
        return False
    
    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
7
7
Proposer: claude-haiku-4-5 Solver: claude-sonnet-4-6
0 vs 0
#2 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            x = int(x)
        except:
            return False
    
    if not isinstance(x, int) or x <= 0:
        return False
    
    s = str(x)
    
    for i, d in enumerate(s):
        if s.count(str(i)) != int(d):
            return False
    
    return True
2020
1210
Proposer: claude-sonnet-4-6 Solver: claude-haiku-4-5
0 vs 0
#3 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            x = int(x)
        except:
            return False
    
    if not isinstance(x, int) or x <= 0:
        return False
    
    # Count the number of divisors
    divisor_count = 0
    for i in range(1, x + 1):
        if x % i == 0:
            divisor_count += 1
    
    # Calculate the product of digits
    digit_product = 1
    for digit in str(x):
        digit_product *= int(digit)
    
    # Return True if divisor count equals digit product
    return divisor_count == digit_product
1
24
Proposer: claude-haiku-4-5 Solver: claude-sonnet-4-6
0 vs 0
#4 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            x = int(x)
        except:
            return False

    if not isinstance(x, int) or x <= 1:
        return False

    def f(n):
        count = 0
        while n:
            count += n & 1
            n >>= 1
        return count

    def g(n):
        result = 1
        for c in str(n):
            result *= int(c)
        return result

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

    return h(x) and f(x) == g(x)
13
131
Proposer: claude-sonnet-4-6 Solver: claude-haiku-4-5
0 vs 0
#5 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            x = int(x)
        except:
            return False
    
    if not isinstance(x, int) or x < 0:
        return False
    
    def factorial(n):
        if n <= 1:
            return 1
        result = 1
        for i in range(2, n + 1):
            result *= i
        return result
    
    digit_factorial_sum = sum(factorial(int(d)) for d in str(x))
    
    return x == digit_factorial_sum
145
145
Proposer: claude-haiku-4-5 Solver: claude-sonnet-4-6
0 vs 0
#6 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            x = int(x)
        except:
            return False
    if not isinstance(x, int) or x <= 9:
        return False

    s = str(x)

    # Unnamed check 1
    acc = sum(int(s[i]) ** (i + 1) for i in range(len(s)))

    # Unnamed check 2
    sm = sum(int(c) for c in s)
    sq = int((x + sm) ** 0.5)

    return acc == x and sq * sq == x + sm
135
135
Proposer: claude-sonnet-4-6 Solver: claude-haiku-4-5
0 vs 0
#7 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            x = int(x)
        except:
            return False
    
    if not isinstance(x, int) or x <= 9:
        return False
    
    digit_product = 1
    digit_sum = 0
    for d in str(x):
        digit_product *= int(d)
        digit_sum += int(d)
    
    return digit_product == digit_sum
22
22
Proposer: claude-haiku-4-5 Solver: claude-sonnet-4-6
0 vs 0
#8 Solved
def mystery(x):
    if not isinstance(x, str):
        return False

    if len(x) < 2:
        return False

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

    def b(s):
        try:
            return int(s)
        except:
            return None

    def c(n):
        return sum(int(d) for d in str(n))

    v1 = b(x)
    v2 = b(x[::-1])

    if v1 is None or v2 is None:
        return False

    p = v1 * v2
    ds = c(p)
    r = int(ds ** 0.5)

    return a(v1) and a(v2) and r * r == ds
"11"
"113"
Proposer: claude-sonnet-4-6 Solver: claude-haiku-4-5
0 vs 0
#9 Solved
def mystery(x):
    if isinstance(x, str):
        try:
            x = int(x)
        except:
            return False
    
    if not isinstance(x, int) or x <= 10:
        return False
    
    # Check if x is a triangular number: x = n(n+1)/2
    discriminant = 1 + 8 * x
    sqrt_disc = int(discriminant ** 0.5)
    
    if sqrt_disc * sqrt_disc != discriminant:
        return False
    
    n = (-1 + sqrt_disc) // 2
    
    if n * (n + 1) // 2 != x:
        return False
    
    # Check if digit sum equals the index n
    digit_sum = sum(int(d) for d in str(x))
    
    return digit_sum == n
45
55
Proposer: claude-haiku-4-5 Solver: claude-sonnet-4-6
0 vs 0
#10 Solved
def mystery(x):
    if not isinstance(x, str):
        return False

    s = x.lower().replace(' ', '')

    if not s.isalpha() or len(s) < 2:
        return False

    m = [ord(c) - 96 for c in s]

    # Check A
    total = sum(m)
    r = int(total ** 0.5)
    if r * r != total:
        return False

    # Check B
    prod = 1
    for v in m:
        prod *= v
    if prod % len(s) != 0:
        return False

    # Check C
    vc = sum(1 for c in s if c in 'aeiou')
    if vc < 2:
        return False
    k = 2
    while k * k <= vc:
        if vc % k == 0:
            return False
        k += 1

    # Check D
    ln = len(s)
    if int(ln ** 0.5) ** 2 != ln:
        return False

    return True
"fade"
"bone"
Proposer: claude-sonnet-4-6 Solver: claude-haiku-4-5
0 vs 0