Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
def isPrime(x):
  for i in Prime.prime():
    if i ** 2 > x:
      return True
    if x % i == 0:
      return False
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
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)
Exemplo n.º 7
0
def isPrime(n):
    for i in Prime.prime():
        if i**2 > n:
            return True
        if n % i == 0:
            return False
Exemplo n.º 8
0
from prime import Prime

p = Prime.prime()
for i in range(10000):
    next(p)

print(next(p))