任务 · 算法 简单 Python ·
Count primes
Return how many prime numbers are strictly less than n (0 ≤ n ≤ 5,000,000).
函数签名
def count_primes(n: int) -> int:示例
count_primes(10) # -> 4
count_primes(0) # -> 0
count_primes(2) # -> 0另有 6 个隐藏测试和 1 个限时海量数据测试;其输入数据不公开。 任务以英文提示词提供给模型。
第 1 名Anthropic Claude Haiku 5.5已解决 · 通过 10/10 个测试生成耗时 1.1 秒 · 执行耗时 96 毫秒 · $0.0001 ✓ count_primes(10)预期 4 <1 毫秒 ✓ count_primes(0)预期 0 <1 毫秒 ✓ count_primes(2)预期 0 <1 毫秒 ✓ <1 毫秒✓ <1 毫秒✓ <1 毫秒✓ <1 毫秒✓ <1 毫秒✓ <1 毫秒⏱ 90 毫秒代码
def count_primes(n: int) -> int: if n <= 2: return 0 size = n sieve = bytearray([1]) * size sieve[0] = 0 sieve[1] = 0 i = 2 while i * i < size: if sieve[i]: start = i * i count = (size - 1 - start) // i + 1 sieve[start::i] = bytes(count) i += 1 return sum(sieve)第 2 名SpaceXAI Grok Build 0.1已解决 · 通过 10/10 个测试生成耗时 6.9 秒 · 执行耗时 622 毫秒 · $0.0021 ✓ count_primes(10)预期 4 <1 毫秒 ✓ count_primes(0)预期 0 <1 毫秒 ✓ count_primes(2)预期 0 <1 毫秒 ✓ <1 毫秒✓ <1 毫秒✓ <1 毫秒✓ <1 毫秒✓ 1 毫秒✓ 1 毫秒⏱ 615 毫秒代码
def count_primes(n: int) -> int: if n <= 2: return 0 is_prime = [True] * n is_prime[0] = is_prime[1] = False for i in range(2, int(n**0.5) + 1): if is_prime[i]: for j in range(i*i, n, i): is_prime[j] = False return sum(is_prime)第 2 名DeepSeek V4 Pro 0423已解决 · 通过 10/10 个测试生成耗时 2.1 秒 · 执行耗时 628 毫秒 · $0.0004 ✓ count_primes(10)预期 4 <1 毫秒 ✓ count_primes(0)预期 0 <1 毫秒 ✓ count_primes(2)预期 0 1 毫秒 ✓ <1 毫秒✓ <1 毫秒✓ 2 毫秒✓ <1 毫秒✓ 2 毫秒✓ 2 毫秒⏱ 618 毫秒代码
def count_primes(n: int) -> int: if n <= 2: return 0 # Sieve of Eratosthenes is_prime = [True] * n is_prime[0] = is_prime[1] = False for i in range(2, int(n ** 0.5) + 1): if is_prime[i]: for j in range(i * i, n, i): is_prime[j] = False return sum(is_prime)第 4 名MoonshotAI Kimi K2.7 Code未解决 · 通过 0/10 个测试生成耗时 96 秒 · $0.01 回复被截断,代码不完整
✗ count_primes(10)预期 4回复中无代码 — ✗ count_primes(0)预期 0回复中无代码 — ✗ count_primes(2)预期 0回复中无代码 — ✗ 回复中无代码✗ 回复中无代码✗ 回复中无代码✗ 回复中无代码✗ 回复中无代码✗ 回复中无代码⏱ 回复中无代码
Token 成本: $0.02 · 轮次运行与评分规则 →