← All Duels

gemini-2.5-flash_vs_gpt-5.2-2025-12-11_20260124_080322.jsonl — 10 puzzles

gemini-2.5-flash
-4
vs
gpt-5.2-2025-12-11
-5
#1 Solved
import math

def is_prime(k):
    """Checks if a number k is prime."""
    if k < 2:
        return False
    for i in range(2, int(math.sqrt(k)) + 1):
        if k % i == 0:
            return False
    return True

def is_perfect_number(k):
    """Checks if a number k is a perfect number."""
    if k <= 1:
        return False
    div_sum = 1 # Start with 1 as a divisor
    for i in range(2, int(math.sqrt(k)) + 1):
        if k % i == 0:
            div_sum += i
            if i * i != k:
                div_sum += k // i
    return div_sum == k

def is_fibonacci(n):
    """Checks if a number n is a Fibonacci number (F_n for n >= 1)."""
    if n < 0:
        return False
    if n == 0: # F_0 is 0
        return True
    a, b = 1, 1 # F_1, F_2
    while b < n:
        a, b = b, a + b
    return b == n

def mystery(x):
    """
    This function takes a value x and returns True if it meets specific
    mathematical criteria, otherwise False.
    """
    if not isinstance(x, str):
        return False

    if not x.isdigit():
        return False

    n = int(x)
    
    # Condition 1: The integer value of x must be a Fibonacci number.
    # (F_n for n >= 1, as prime numbers are > 1)
    if not is_fibonacci(n):
        return False

    # Condition 2: The integer value of x must be a prime number.
    if not is_prime(n):
        return False

    # Condition 3: The sum of the digits of x must be a perfect number.
    digit_sum = sum(int(digit) for digit in x)
    if not is_perfect_number(digit_sum):
        return False

    return True
"28657"
"28657"
Proposer: gemini-2.5-flash Solver: gpt-5.2-2025-12-11
0 vs 0
#2 Sample Solution Wrong
import hashlib
import unicodedata
import math

def mystery(x):
    # Accept either number or string, but normalize in a slightly tricky way.
    if isinstance(x, (int, float)):
        # Floats must be integral to pass.
        if isinstance(x, float) and not x.is_integer():
            return False
        s = str(int(x))
    elif isinstance(x, str):
        # NFKC normalization changes some "look-alike" characters into ASCII.
        s = unicodedata.normalize("NFKC", x).strip()
    else:
        return False

    # Must be a plain base-10 integer string (no plus sign, no spaces, no underscores).
    if not (s and (s[0] == "-" and s[1:].isdigit() or s.isdigit())):
        return False

    n = int(s)

    # Mix arithmetic with a hash gate. The arithmetic part is easy to compute,
    # but the hash part hides the actual target value.
    # (Still solvable: there exists at least one integer making it True.)
    if n < 0:
        return False

    # A small modular constraint to narrow candidates.
    if n % 37 != 12:
        return False

    # Another constraint: popcount of n must match popcount of n^0xA5.
    # This is not common, but deterministic.
    def popcount(k):
        return k.bit_count()

    if popcount(n) != popcount(n ^ 0xA5):
        return False

    # Hash gate, but with a twist: include length and a derived checksum.
    ln = len(s)
    chk = (sum((i + 1) * ord(c) for i, c in enumerate(s)) + ln * 31337) % 1000003
    payload = f"{ln}|{chk}|{n}".encode("utf-8")

    h = hashlib.sha256(payload).hexdigest()

    # Require a specific pattern and prefix to make brute force annoying.
    if not (h.startswith("00000") and h[10:14] == "beef"):
        return False

    return True
1234567890123456789012
Proposer: gpt-5.2-2025-12-11 Solver: gemini-2.5-flash
0 vs -1
#3 Sample Solution Wrong
import math

def is_prime(k):
    """Checks if a number k is prime."""
    if k < 2:
        return False
    for i in range(2, int(math.sqrt(k)) + 1):
        if k % i == 0:
            return False
    return True

def is_fibonacci(n):
    """Checks if a number n is a Fibonacci number (F_k for k >= 1)."""
    if n < 1: # F_0 is 0, but we're looking for numbers typically > 1
        return False
    a, b = 1, 1 # F_1, F_2
    while b < n:
        a, b = b, a + b
    return b == n

def is_palindrome_number(n):
    """Checks if a number n is a palindrome in base 10."""
    s = str(n)
    return s == s[::-1]

def sum_digits(n):
    """Calculates the sum of the digits of a number n."""
    return sum(int(digit) for digit in str(n))

def mystery(x):
    """
    This function takes a value x and returns True if it meets specific
    mathematical and string-based criteria, otherwise False.
    """
    # Condition 1: x must be a string of exactly 5 digits.
    if not isinstance(x, str) or not (len(x) == 5 and x.isdigit()):
        return False

    n = int(x)

    # Condition 2: The integer value of x must be a prime number.
    if not is_prime(n):
        return False

    # Condition 3: The integer value of x must be a Fibonacci number (F_k for k >= 1).
    if not is_fibonacci(n):
        return False

    # Condition 4: The integer value of x must be a palindrome in base 10.
    if not is_palindrome_number(n):
        return False

    # Condition 5: The sum of the digits of x must also be a prime number.
    if not is_prime(sum_digits(n)):
        return False

    return True
"00131"
Proposer: gemini-2.5-flash Solver: gpt-5.2-2025-12-11
-1 vs -1
#4 Sample Solution Wrong
import hashlib
import unicodedata

# Fixed secret (not derived from x).
_SECRET = "8f3a7c2d1e9b4a6f0c5d2b7e1a3f9c4d"

def mystery(x):
    # Normalize input so look-alike Unicode digits/letters collapse (NFKC),
    # and numbers become canonical decimal.
    if isinstance(x, (int,)):
        s = str(x)
    elif isinstance(x, float):
        if not x.is_integer():
            return False
        s = str(int(x))
    elif isinstance(x, str):
        s = unicodedata.normalize("NFKC", x).strip()
    else:
        return False

    # Gate 1: must be a pure decimal integer string (no +, no spaces, no underscores).
    if not s or (s[0] == "-" and not s[1:].isdigit()) or (s[0] != "-" and not s.isdigit()):
        return False

    n = int(s)
    if n < 0:
        return False

    # Gate 2: a modular constraint to reduce obvious brute force patterns.
    if n % 97 != 42:
        return False

    # Gate 3: hash-based equality check (hard to reverse without guessing).
    # Include length and a checksum to discourage simple precomputation.
    ln = len(s)
    chk = (sum((i + 1) * (ord(c) - 48) for i, c in enumerate(s)) + 31337 * ln) % 1000003
    payload = f"{_SECRET}|{ln}|{chk}|{s}".encode("utf-8")
    h = hashlib.sha256(payload).hexdigest()

    # Accept iff the hash matches the hash of a specific hidden target string.
    target_payload = f"{_SECRET}|2|94014|42".encode("utf-8")
    target_hash = hashlib.sha256(target_payload).hexdigest()

    return h == target_hash
42
Proposer: gpt-5.2-2025-12-11 Solver: gemini-2.5-flash
-1 vs -2
#5 Sample Solution Wrong
import hashlib

def mystery(x):
    """
    This function takes a value x (string or number) and returns True if it meets
    a series of string, numeric, and cryptographic criteria.
    """
    # Condition 1: x must be a string.
    if not isinstance(x, str):
        return False

    # Condition 2: x must consist of exactly 7 lowercase English letters.
    if not (len(x) == 7 and x.islower() and x.isalpha()):
        return False

    # Condition 3: x must be a palindrome (reads the same forwards and backwards).
    if not (x == x[::-1]):
        return False

    # Condition 4: Convert x into a base-26 number.
    # Each letter 'a' through 'z' is assigned a digit value from 0 to 25.
    # The number 'n' is formed by interpreting the sequence of these character values
    # as digits in base 26, from left to right.
    n = 0
    for char in x:
        n = n * 26 + (ord(char) - ord('a'))

    # Condition 5: The derived number 'n' must satisfy a modular arithmetic constraint.
    if n % 101 != 7:
        return False

    # Condition 6: The lower 16 bits of 'n' must have exactly 8 set bits (popcount).
    # MASK = 0xFFFF is a 16-bit integer (0b1111111111111111).
    # Its bit_count() is 16. We require that n AND MASK has half of MASK's set bits.
    MASK = 0xFFFF
    if (n & MASK).bit_count() != (MASK.bit_count() // 2):
        return False

    # Condition 7: A cryptographic hash of a payload derived from x must meet a prefix requirement.
    # The payload is constructed from the original string, its length,
    # a simple checksum of its character ordinal values, and the derived number 'n'.
    checksum = sum(ord(c) for c in x)
    payload = f"{x}|{len(x)}|{checksum}|{n}".encode('utf-8')
    h = hashlib.sha256(payload).hexdigest()

    # The SHA256 hash of the payload must start with five leading zeros.
    if not h.startswith("00000"):
        return False

    return True
"dkvqvqd"
Proposer: gemini-2.5-flash Solver: gpt-5.2-2025-12-11
-2 vs -2
#6 Sample Solution Wrong
import unicodedata
import hashlib
import zlib

# Fixed secret salt (not derived from x)
_SALT = b"\x13\x37mYsTeRy\x00S@lt!"

def mystery(x):
    # Accept int/float/str; canonicalize aggressively.
    if isinstance(x, bool):
        return False  # avoid True/False acting like 1/0
    if isinstance(x, int):
        s = str(x)
    elif isinstance(x, float):
        if not x.is_integer():
            return False
        s = str(int(x))
    elif isinstance(x, str):
        s = unicodedata.normalize("NFKC", x).strip()
    else:
        return False

    # Must be a plain base-10 nonnegative integer string, no leading '+' or spaces.
    if not s or not s.isdigit():
        return False
    if len(s) > 80:   # keep it bounded
        return False
    if len(s) > 1 and s[0] == "0":  # no leading zeros (except "0")
        return False

    n = int(s)

    # Cheap arithmetic gates to cut down naive guessing
    if n % 97 != 42:
        return False
    if (n.bit_count() ^ (n & 31)) != 7:
        return False

    # Compute a checksum that depends on both the string form and number
    ln = len(s)
    chk = (zlib.crc32((s + "|" + str(ln)).encode("utf-8")) ^ (n & 0xFFFFFFFF)) & 0xFFFFFFFF

    # Hash gate, but with a hidden target derived from a known embedded constant.
    payload = b"|".join([_SALT, s.encode("utf-8"), str(ln).encode("ascii"), str(chk).encode("ascii")])
    h = hashlib.sha256(payload).hexdigest()

    # Condition: hash must exactly equal the hash produced by the specific hidden solution "42".
    # This keeps the puzzle solvable but obscures the answer without reproducing the computation.
    target_s = "42"
    target_ln = len(target_s)
    target_n = int(target_s)
    target_chk = (zlib.crc32((target_s + "|" + str(target_ln)).encode("utf-8")) ^ (target_n & 0xFFFFFFFF)) & 0xFFFFFFFF
    target_payload = b"|".join([_SALT, target_s.encode("utf-8"), str(target_ln).encode("ascii"), str(target_chk).encode("ascii")])
    target_h = hashlib.sha256(target_payload).hexdigest()

    return h == target_h
"42"
Proposer: gpt-5.2-2025-12-11 Solver: gemini-2.5-flash
-2 vs -3
#7 Sample Solution Wrong
import math
import hashlib

def is_prime(k):
    """Checks if a number k is prime."""
    if k < 2:
        return False
    for i in range(2, int(math.sqrt(k)) + 1):
        if k % i == 0:
            return False
    return True

def sum_decimal_digits(n):
    """Calculates the sum of the decimal digits of a number n."""
    return sum(int(digit) for digit in str(n))

def mystery(x):
    """
    This function takes a value x (string) and returns True if it meets
    a series of hexadecimal string, numeric, bitwise, and cryptographic criteria.
    """
    # Condition 1: x must be a string of exactly 8 hexadecimal characters.
    if not isinstance(x, str):
        return False
    
    # Normalize to lowercase for consistency and robust parsing
    x_lower = x.lower() 
    if not (len(x_lower) == 8 and all(c in "0123456789abcdef" for c in x_lower)):
        return False

    # Convert the hexadecimal string to an integer n.
    n = int(x_lower, 16)

    # Condition 2: The integer value of n must be an even number.
    if n % 2 != 0:
        return False

    # Condition 3: The sum of the decimal digits of n must be a prime number.
    if not is_prime(sum_decimal_digits(n)):
        return False

    # Condition 4: The number n must have exactly 5 set bits in its binary representation.
    if n.bit_count() != 5:
        return False

    # Condition 5: The number n modulo 113 must be 7.
    if n % 113 != 7:
        return False

    # Condition 6: A cryptographic hash of a payload derived from x must meet a prefix requirement.
    # The payload is constructed from the normalized string, its length,
    # the sum of its decimal digits, its bit count, and its modulo result.
    sdd = sum_decimal_digits(n)
    n_bit_count = n.bit_count()
    n_mod_113 = n % 113

    payload = f"{x_lower}|{len(x_lower)}|{sdd}|{n_bit_count}|{n_mod_113}".encode('utf-8')
    h = hashlib.sha256(payload).hexdigest()

    # The SHA256 hash of the payload must start with five leading zeros.
    if not h.startswith("00000"):
        return False

    return True
'00002102'
Proposer: gemini-2.5-flash Solver: gpt-5.2-2025-12-11
-3 vs -3
#8 Sample Solution Wrong
import hashlib
import unicodedata
import zlib

# A fixed secret salt to make the hash gate non-obvious.
_SALT = b"mystery-salt:\x01\x9f\xfe\x17"

def _canon(x):
    """Canonicalize x into a single deterministic string representation."""
    if isinstance(x, bool):
        return None
    if isinstance(x, int):
        return str(x)
    if isinstance(x, float):
        if not x.is_integer():
            return None
        return str(int(x))
    if isinstance(x, str):
        # Normalize look-alike unicode, and strip surrounding whitespace.
        return unicodedata.normalize("NFKC", x).strip()
    return None

def mystery(x):
    s = _canon(x)
    if s is None:
        return False

    # Must be a plain nonnegative base-10 integer string, no leading zeros unless "0".
    if not s.isdigit():
        return False
    if len(s) > 64:
        return False
    if len(s) > 1 and s[0] == "0":
        return False

    n = int(s)

    # A couple of arithmetic/bit gates (cheap, but restrictive).
    if n % 97 != 42:
        return False
    if ((n * 31337) ^ (n >> 3)).bit_count() % 11 != 7:
        return False

    # CRC-based check ties together string form and number.
    ln = len(s)
    crc = zlib.crc32((s + "|" + str(ln)).encode("utf-8")) & 0xFFFFFFFF
    if (crc ^ (n & 0xFFFFFFFF)) % 65521 != 12345:
        return False

    # Final hash gate: equality to an internal target derived from a hidden chosen solution.
    payload = b"|".join([
        _SALT,
        s.encode("utf-8"),
        str(ln).encode("ascii"),
        str(crc).encode("ascii"),
        str(n % 1000003).encode("ascii"),
    ])
    h = hashlib.sha256(payload).hexdigest()

    # Internal target (not shown as a literal hash; it's recomputed).
    target_s = "4313"
    target_ln = len(target_s)
    target_n = int(target_s)
    target_crc = zlib.crc32((target_s + "|" + str(target_ln)).encode("utf-8")) & 0xFFFFFFFF
    target_payload = b"|".join([
        _SALT,
        target_s.encode("utf-8"),
        str(target_ln).encode("ascii"),
        str(target_crc).encode("ascii"),
        str(target_n % 1000003).encode("ascii"),
    ])
    target_h = hashlib.sha256(target_payload).hexdigest()

    return h == target_h
"4313"
Proposer: gpt-5.2-2025-12-11 Solver: gemini-2.5-flash
-3 vs -4
#9 Sample Solution Wrong
import math
import hashlib

def to_base36(n):
    """Converts a non-negative integer to its base-36 string representation."""
    if n < 0:
        raise ValueError("Only non-negative integers can be converted to base-36.")
    if n == 0:
        return "0"
    chars = "0123456789abcdefghijklmnopqrstuvwxyz"
    res = ""
    while n > 0:
        res = chars[n % 36] + res
        n //= 36
    return res

def is_prime(k):
    """Checks if a number k is prime."""
    if k < 2:
        return False
    for i in range(2, int(math.sqrt(k)) + 1):
        if k % i == 0:
            return False
    return True

def sum_decimal_digits(n):
    """Calculates the sum of the decimal digits of a number n."""
    return sum(int(digit) for digit in str(n))

def mystery(x):
    """
    This function takes a value x (string) and returns True if it meets
    a series of string, numeric, bitwise, and cryptographic criteria.
    """
    # Condition 1: x must be a string of exactly 5 alphanumeric characters (base-36 digits).
    if not isinstance(x, str):
        return False
    
    # Normalize to lowercase for consistency and robust parsing
    x_lower = x.lower() 
    if not (len(x_lower) == 5 and all(c in "0123456789abcdefghijklmnopqrstuvwxyz" for c in x_lower)):
        return False

    # Convert the base-36 string to an integer n.
    n = int(x_lower, 36)

    # Condition 2: The integer value of n must be an odd number.
    if n % 2 == 0:
        return False

    # Condition 3: The number n modulo 103 must be 17.
    if n % 103 != 17:
        return False

    # Condition 4: The sum of the decimal digits of n must be a multiple of 5.
    if sum_decimal_digits(n) % 5 != 0:
        return False

    # Condition 5: The number of set bits in n's binary representation must be a prime number.
    if not is_prime(n.bit_count()):
        return False

    # Condition 6: A cryptographic hash of a payload derived from x must meet a prefix requirement.
    # The payload is constructed from the normalized string, the integer n,
    # its length, and its bit count.
    payload = f"{x_lower}|{n}|{len(x_lower)}|{n.bit_count()}".encode('utf-8')
    h = hashlib.sha256(payload).hexdigest()

    # The SHA256 hash of the payload must start with five leading zeros.
    if not h.startswith("00000"):
        return False

    return True
'w6y9v'
Proposer: gemini-2.5-flash Solver: gpt-5.2-2025-12-11
-4 vs -4
#10 Sample Solution Wrong
import unicodedata
import hashlib

# Fixed secret pepper; makes the internal check opaque.
_PEPPER = b"\x8e\x1f\x03mystery\x00pepper\x7f"

def _canon(x):
    """Canonicalize input into a deterministic byte string."""
    if isinstance(x, bool):
        return None
    if isinstance(x, int):
        s = str(x)
    elif isinstance(x, float):
        if not x.is_integer():
            return None
        s = str(int(x))
    elif isinstance(x, str):
        # NFKC collapses look-alike Unicode, then trim.
        s = unicodedata.normalize("NFKC", x).strip()
    else:
        return None
    return s.encode("utf-8")

def mystery(x):
    b = _canon(x)
    if b is None:
        return False

    # Length gate: must be plausible, prevents huge payloads.
    if not (1 <= len(b) <= 64):
        return False

    # Mix in some structure constraints that are non-obvious from the outside.
    s = b.decode("utf-8", errors="strict")
    if any(ord(ch) < 32 for ch in s):   # forbid control chars
        return False

    # A small arithmetic gate on bytes (annoying to reason about by inspection).
    acc = 0
    for i, by in enumerate(b, 1):
        acc = (acc * 131 + (by ^ (i * 17 & 0xFF))) & 0xFFFFFFFF
    if (acc ^ len(b) * 2654435761) & 0xFF != 0x5A:
        return False

    # Final opaque gate: exact SHA-256 equality against an internal target.
    def H(payload: bytes) -> bytes:
        return hashlib.sha256(_PEPPER + b"|" + payload).digest()

    target = H(b"opensesame")  # chosen to ensure solvable
    return H(b) == target
"opensesame"
Proposer: gpt-5.2-2025-12-11 Solver: gemini-2.5-flash
-4 vs -5