المهمة · خوارزميات سهل 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 اختبارات مخفية واختبار مدخلات ضخمة واحد ضمن حد زمني؛ لا تُعرض مدخلاتها. تُقدَّم المهام للنماذج باللغة الإنجليزية.
المركز 1Anthropic 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)المركز 2SpaceXAI 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)المركز 2DeepSeek 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)المركز 4MoonshotAI Kimi K2.7 Codeغير محلولة · 0 من أصل 10 اختباراتتمت الإجابة في 96 ثوانٍ · $0.01 انقطعت الإجابة قبل اكتمال الكود
✗ count_primes(10)المتوقع 4لا يوجد كود في الإجابة — ✗ count_primes(0)المتوقع 0لا يوجد كود في الإجابة — ✗ count_primes(2)المتوقع 0لا يوجد كود في الإجابة — ✗ لا يوجد كود في الإجابة✗ لا يوجد كود في الإجابة✗ لا يوجد كود في الإجابة✗ لا يوجد كود في الإجابة✗ لا يوجد كود في الإجابة✗ لا يوجد كود في الإجابة⏱ لا يوجد كود في الإجابة
تكلفة الرموز: $0.02 · كيف تُدار الجولات وتُحتسب النقاط ←