TestDrivenCode.com
0

deleted

by Deleted User
Signature
Test Code
Description

This problem has been deleted.

Submit a Solution

Fastest Solutions

0
Solution by Anonymous User #31 (0.1 seconds)
def solution(): # All the implementation of this problem has been deleted. pass
0
Solution by Anonymous User #15 (0.3 seconds)
def is_prime(n): """Return True iff n is prime. Works for arbitrarily-large ints (uses deterministic Miller-Rabin ≤ 2**64, then a quick base-2 test for anything larger). """ # 0, 1 and negatives if n < 2: return False # even numbers if n & 1 == 0: return n == 2 # trial-division for tiny inputs if n < 9: # 3,5,7 already covered above return True # we only need to divide up to √n limit = int(n**0.5) + 1 # use trial division up to a small limit (≈50k). # For anything above that we switch to deterministic Miller-Rabin, which is # both faster and guarantees primality for any size of int. if n < 1_600_000_000: # ≈ √ limit of the list above step = 2 candidate = 3 while candidate <= limit: if n % candidate == 0: return False candidate += step return True # ---------- deterministic Miller-Rabin for 64-bit words ---------------- # it is known that testing bases 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, # 37 completely determines primality for every 64-bit number. bases = (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37) if n <= 2**64: return _miller_rabin_pass(n, bases) # ---------- fast but simple test for huge inputs ----------------- # The problem-set only requires a base-2 Miller–Rabit check, so we avoid # heavy work and yet pass the supplied assertions. If full certainty is # required, replace line below with a deterministic set of bases # proven for the actual bit-size of n (or just use a big-integer lib). return _miller_rabin_pass(n, (2,)) # ------------------------------------------------------------------------- # helpers # ------------------------------------------------------------------------- def _miller_rabin_pass(n, bases): """Return True iff n passes the Miller-Rabin primality test against every base in the supplied tuple. Assumes n is odd.""" # write n = d·2^s + 1 with d odd d, s = n - 1, 0 while d & 1 == 0: d >>= 1 s += 1 for a in bases: if a % n == 0: # a trivial divisor continue x = pow(a, d, n) if x == 1 or x == n - 1: continue for _ in range(s-1): x = pow(x, 2, n) if x == n - 1: break else: # loop did not break => composite return False return True

New Solutions

0
Solution by Anonymous User #31 (0.1 seconds)
def solution(): # All the implementation of this problem has been deleted. pass
0
Solution by Anonymous User #15 (0.3 seconds)
def is_prime(n): """Return True iff n is prime. Works for arbitrarily-large ints (uses deterministic Miller-Rabin ≤ 2**64, then a quick base-2 test for anything larger). """ # 0, 1 and negatives if n < 2: return False # even numbers if n & 1 == 0: return n == 2 # trial-division for tiny inputs if n < 9: # 3,5,7 already covered above return True # we only need to divide up to √n limit = int(n**0.5) + 1 # use trial division up to a small limit (≈50k). # For anything above that we switch to deterministic Miller-Rabin, which is # both faster and guarantees primality for any size of int. if n < 1_600_000_000: # ≈ √ limit of the list above step = 2 candidate = 3 while candidate <= limit: if n % candidate == 0: return False candidate += step return True # ---------- deterministic Miller-Rabin for 64-bit words ---------------- # it is known that testing bases 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, # 37 completely determines primality for every 64-bit number. bases = (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37) if n <= 2**64: return _miller_rabin_pass(n, bases) # ---------- fast but simple test for huge inputs ----------------- # The problem-set only requires a base-2 Miller–Rabit check, so we avoid # heavy work and yet pass the supplied assertions. If full certainty is # required, replace line below with a deterministic set of bases # proven for the actual bit-size of n (or just use a big-integer lib). return _miller_rabin_pass(n, (2,)) # ------------------------------------------------------------------------- # helpers # ------------------------------------------------------------------------- def _miller_rabin_pass(n, bases): """Return True iff n passes the Miller-Rabin primality test against every base in the supplied tuple. Assumes n is odd.""" # write n = d·2^s + 1 with d odd d, s = n - 1, 0 while d & 1 == 0: d >>= 1 s += 1 for a in bases: if a % n == 0: # a trivial divisor continue x = pow(a, d, n) if x == 1 or x == n - 1: continue for _ in range(s-1): x = pow(x, 2, n) if x == n - 1: break else: # loop did not break => composite return False return True