class TestPrime(unittest.TestCase): def setUp(self): self.prime = Prime() def test_prime_returns_error_if_arg_is_not_positive_integer(self): self.assertRaises(TypeError, self.prime.prime, -10) def test_prime_returns_error_message_if_arg_is_string(self): self.assertRaises(TypeError, self.prime.prime, '10') def test_prime_returns_error_message_if_arg_is_float(self): self.assertRaises(TypeError, self.prime.prime, 10.0) def test_prime_returns_empty_list_when_arg_is_0(self): result = self.prime.prime(0) self.assertEqual([], result) def test_prime_returns_2_when_arg_is_2(self): result = self.prime.prime(2) self.assertEqual(2, result) if __name__ == '--main--': unittest.main()
from prime import Prime target = int(5e7) mask = [1] * target ans = 0 for i in map(lambda x: x**2, Prime.prime()): if i >= target: break for j in map(lambda x: x**3, Prime.prime()): if i + j >= target: break for k in map(lambda x: x**4, Prime.prime()): s = i + j + k if s >= target: break ans += mask[s] mask[s] = 0 print(ans)
def isPrime(x): for i in Prime.prime(): if i ** 2 > x: return True if x % i == 0: return False
from prime import Prime def t(): n = 1 r = 0 while True: r += n yield r n += 1 for n in t(): count = 1 curr = n for p in Prime.prime(): c = 1 while n % p == 0: c += 1 n //= p count *= c if n == 1: break if count > 500: print(curr) break
from prime import Prime ans = 0 curr = 0 for b in Prime.prime(): if b > 1000: break for a in range(-999, 1000): n = 0 for i in map(lambda x: b + a * x + x**2, range(2000)): if not Prime.isPrime(i): break n += 1 if n > curr: curr = n ans = a * b print(ans)
from prime import Prime num = 600851475143 for i in Prime.prime(): if i**2 > num: break while num % i == 0: num //= i if num == 1: num = i break print(num)
def isPrime(n): for i in Prime.prime(): if i**2 > n: return True if n % i == 0: return False
from prime import Prime p = Prime.prime() for i in range(10000): next(p) print(next(p))