← All Duels

claude-haiku-4-5_vs_claude-opus-4-7.jsonl — 10 puzzles

claude-haiku-4-5
0
vs
claude-opus-4-7
0
#1 Solved
def mystery(x):
    if not isinstance(x, int) or x < 1:
        return False
    binary_str = bin(x)[2:]
    return binary_str == binary_str[::-1]
5
9
Proposer: claude-haiku-4-5 Solver: claude-opus-4-7
0 vs 0
#2 Solved
def mystery(x):
    if not isinstance(x, int) or x < 0:
        return False
    s = str(x)
    if len(s) != 5:
        return False
    d = [int(c) for c in s]
    if sum(d) != 23:
        return False
    if d[0] * d[4] != d[1] + d[2] + d[3]:
        return False
    if x % 7 != 3:
        return False
    if any(d[i] == d[i+1] for i in range(4)):
        return False
    return d[2] > d[0] > d[4]
71942
71942
Proposer: claude-opus-4-7 Solver: claude-haiku-4-5
0 vs 0
#3 Solved
def mystery(x):
    if not isinstance(x, int) or x < 0:
        return False
    s = str(x)
    n = len(s)
    digits = [int(d) for d in s]
    return sum(d**n for d in digits) == x
153
153
Proposer: claude-haiku-4-5 Solver: claude-opus-4-7
0 vs 0
#4 Solved
def mystery(x):
    if not isinstance(x, str):
        return False
    if len(x) != 10:
        return False
    if x[4] != '-' or x[7] != '-':
        return False
    try:
        y = int(x[0:4]); m = int(x[5:7]); d = int(x[8:10])
    except:
        return False
    import datetime
    try:
        dt = datetime.date(y, m, d)
    except:
        return False
    # Must be a Tuesday
    if dt.weekday() != 1:
        return False
    # Year must be prime
    def isp(n):
        if n < 2: return False
        for i in range(2, int(n**0.5)+1):
            if n % i == 0: return False
        return True
    if not isp(y):
        return False
    # day * month must equal digit sum of year
    if d * m != sum(int(c) for c in str(y)):
        return False
    # Year must be in this millennium
    if y < 2000 or y >= 3000:
        return False
    return True
"2011-01-04"
"2017-01-10"
Proposer: claude-opus-4-7 Solver: claude-haiku-4-5
0 vs 0
#5 Solved
def mystery(x):
    if not isinstance(x, int) or x < 1:
        return False
    square = x * x
    s = str(square)
    n = len(s)
    
    # Try all possible splits of the square's digits
    for i in range(1, n):
        left = int(s[:i])
        right = int(s[i:])
        if left + right == x and right > 0:
            return True
    return False
9
9
Proposer: claude-haiku-4-5 Solver: claude-opus-4-7
0 vs 0
#6 Solved
def mystery(x):
    if not isinstance(x, int) or x < 1:
        return False
    s = str(x)
    if len(s) != 7:
        return False
    if len(set(s)) != 7:
        return False
    if '0' in s:
        return False
    for c in s:
        if x % int(c) != 0:
            return False
    digits = [int(c) for c in s]
    if digits[0] != max(digits):
        return False
    if sum(digits) != 36:
        return False
    if digits[-1] % 2 != 0:
        return False
    return True
9678312
9867312
Proposer: claude-opus-4-7 Solver: claude-haiku-4-5
0 vs 0
#7 Solved
def mystery(x):
    if not isinstance(x, int) or x < 10:
        return False
    
    s = str(x)
    digits = [int(d) for d in s]
    
    # Product of digits must equal count of divisors
    product = 1
    for d in digits:
        product *= d
    
    if product == 0:
        return False
    
    # Count divisors
    count = 0
    for i in range(1, int(x**0.5) + 1):
        if x % i == 0:
            count += 1
            if i != x // i:
                count += 1
    
    return product == count
22
24
Proposer: claude-haiku-4-5 Solver: claude-opus-4-7
0 vs 0
#8 Solved
def mystery(x):
    if not isinstance(x, int) or x < 1:
        return False
    # Must be a perfect square
    r = int(round(x**0.5))
    if r*r != x:
        return False
    s = str(x)
    if len(s) != 4:
        return False
    digits = [int(c) for c in s]
    # Product of digits == 168
    p = 1
    for d in digits:
        p *= d
    if p != 168:
        return False
    # Sum of digits == 18
    if sum(digits) != 18:
        return False
    # Divisible by 7
    if x % 7 != 0:
        return False
    # First digit strictly less than last digit
    if digits[0] >= digits[-1]:
        return False
    return True
1764
1764
Proposer: claude-opus-4-7 Solver: claude-haiku-4-5
0 vs 0
#9 Solved
def mystery(x):
    if not isinstance(x, int) or x < 10:
        return False
    
    # Get digit sum
    digit_sum = sum(int(d) for d in str(x))
    
    # Count prime factors with multiplicity
    n = x
    count = 0
    d = 2
    while d * d <= n:
        while n % d == 0:
            count += 1
            n //= d
        d += 1
    if n > 1:
        count += 1
    
    return digit_sum == count
12
12
Proposer: claude-haiku-4-5 Solver: claude-opus-4-7
0 vs 0
#10 Solved
def mystery(x):
    if not isinstance(x, str):
        return False
    if len(x) != 8:
        return False
    if not (x.isalpha() and x.islower()):
        return False
    vals = [ord(c) - ord('a') + 1 for c in x]
    if sum(vals) != 80:
        return False
    if len(set(x)) != 8:
        return False
    if vals != sorted(vals):
        return False
    if x[0] != 'b' or x[-1] != 'w':
        return False
    if vals[3] * vals[4] != 84:
        return False
    return True
"bcdglmpw"
"bcdglmpw"
Proposer: claude-opus-4-7 Solver: claude-haiku-4-5
0 vs 0