Skip to content

Instantly share code, notes, and snippets.

@dugweb
Last active August 29, 2015 14:22
Show Gist options
  • Save dugweb/f45aa7b9e1976289e4a2 to your computer and use it in GitHub Desktop.
Save dugweb/f45aa7b9e1976289e4a2 to your computer and use it in GitHub Desktop.
Find the next prime number function
import unittest
def find_next_prime(n):
n += 1
while not is_prime(n):
n += 1
return n
def is_prime(n):
# Not necessary to iterate through entire number, only half gets the job done.
# Should be further optimized if 'n' gets too huge
if n % 2 == 0 and n != 2:
return False
else:
test_range = n / 2
for i in range(test_range, 1, -1):
if n % i == 0:
return False
return True
# ######################################################################
# Some tests. Not terribly thorough but it's late and I'm sleepy
class TestFindNextPrime(unittest.TestCase):
def test_isPrime(self):
self.assertEqual(is_prime(2), True)
self.assertEqual(is_prime(3), True)
self.assertEqual(is_prime(5), True)
self.assertEqual(is_prime(7), True)
self.assertEqual(is_prime(11), True)
self.assertEqual(is_prime(13), True)
self.assertEqual(is_prime(4), False)
self.assertEqual(is_prime(6), False)
self.assertEqual(is_prime(8), False)
self.assertEqual(is_prime(9), False)
self.assertEqual(is_prime(10), False)
def test_nextPrime(self):
self.assertEqual(find_next_prime(6), 7)
self.assertEqual(find_next_prime(10), 11)
self.assertEqual(find_next_prime(11), 13)
unittest.main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment