From f7f162ef69cb1e9c2c4d2836effc6f02c0bed6b9 Mon Sep 17 00:00:00 2001 From: Akshay Dubey Date: Thu, 10 Nov 2022 10:17:37 +0530 Subject: [PATCH 1/3] feat: Add twin prime algorithm --- maths/twin_prime.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 maths/twin_prime.py diff --git a/maths/twin_prime.py b/maths/twin_prime.py new file mode 100644 index 000000000000..883bd43dba59 --- /dev/null +++ b/maths/twin_prime.py @@ -0,0 +1,45 @@ +""" +== Twin Prime == +A number n+2 is said to be a Twin prime of number n if +both n and n+2 are prime. + +Examples of Twin pairs: (3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), ... +https://en.wikipedia.org/wiki/Twin_prime +""" + +# Author : Akshay Dubey (https://github.com/itsAkshayDubey) +from prime_check import is_prime + + +def twin_prime(number: int) -> int: + """ + # doctest: +NORMALIZE_WHITESPACE + This functions takes an integer number as input. + returns n+2 if n and n+2 are prime numbers and -1 otherwise. + >>> twin_prime(3) + 5 + >>> twin_prime(4) + -1 + >>> twin_prime(5) + 7 + >>> twin_prime(17) + 19 + >>> twin_prime(0) + -1 + >>> twin_prime(6.0) + Traceback (most recent call last): + ... + TypeError: Input value of [number=6.0] must be an integer + """ + if not isinstance(number, int): + raise TypeError(f"Input value of [number={number}] must be an integer") + if is_prime(number) and is_prime(number + 2): + return number + 2 + else: + return -1 + + +if __name__ == "__main__": + import doctest + + doctest.testmod() \ No newline at end of file From b2c519cb813507f8bb2817d5c0fa5b253ed1995d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 10 Nov 2022 04:49:59 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/twin_prime.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maths/twin_prime.py b/maths/twin_prime.py index 883bd43dba59..045aa733d41d 100644 --- a/maths/twin_prime.py +++ b/maths/twin_prime.py @@ -42,4 +42,4 @@ def twin_prime(number: int) -> int: if __name__ == "__main__": import doctest - doctest.testmod() \ No newline at end of file + doctest.testmod() From ae3f6a041438467f47a4474d290382c4921b364f Mon Sep 17 00:00:00 2001 From: Akshay Dubey Date: Thu, 10 Nov 2022 10:45:36 +0530 Subject: [PATCH 3/3] fix: Fix broken import statement --- maths/twin_prime.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maths/twin_prime.py b/maths/twin_prime.py index 883bd43dba59..40de5bb5d124 100644 --- a/maths/twin_prime.py +++ b/maths/twin_prime.py @@ -8,7 +8,7 @@ """ # Author : Akshay Dubey (https://github.com/itsAkshayDubey) -from prime_check import is_prime +from maths.prime_check import is_prime def twin_prime(number: int) -> int: