input: prime numbers 'pNumber1' and 'pNumber2' pNumber1 < pNumber2 returns a list of all prime numbers between 'pNumber1' (exclusive) and 'pNumber2' (exclusive) >>> get_primes_between(3, 67) [5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61]
(p_number_1, p_number_2)
| 585 | |
| 586 | |
| 587 | def get_primes_between(p_number_1, p_number_2): |
| 588 | """ |
| 589 | input: prime numbers 'pNumber1' and 'pNumber2' |
| 590 | pNumber1 < pNumber2 |
| 591 | returns a list of all prime numbers between 'pNumber1' (exclusive) |
| 592 | and 'pNumber2' (exclusive) |
| 593 | |
| 594 | >>> get_primes_between(3, 67) |
| 595 | [5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61] |
| 596 | >>> get_primes_between(0) |
| 597 | Traceback (most recent call last): |
| 598 | ... |
| 599 | TypeError: get_primes_between() missing 1 required positional argument: 'p_number_2' |
| 600 | >>> get_primes_between(0, 1) |
| 601 | Traceback (most recent call last): |
| 602 | ... |
| 603 | AssertionError: The arguments must been prime numbers and 'pNumber1' < 'pNumber2' |
| 604 | >>> get_primes_between(-1, 3) |
| 605 | Traceback (most recent call last): |
| 606 | ... |
| 607 | AssertionError: 'number' must been an int and positive |
| 608 | >>> get_primes_between("test","test") |
| 609 | Traceback (most recent call last): |
| 610 | ... |
| 611 | AssertionError: 'number' must been an int and positive |
| 612 | """ |
| 613 | |
| 614 | # precondition |
| 615 | assert ( |
| 616 | is_prime(p_number_1) and is_prime(p_number_2) and (p_number_1 < p_number_2) |
| 617 | ), "The arguments must been prime numbers and 'pNumber1' < 'pNumber2'" |
| 618 | |
| 619 | number = p_number_1 + 1 # jump to the next number |
| 620 | |
| 621 | ans = [] # this list will be returns. |
| 622 | |
| 623 | # if number is not prime then |
| 624 | # fetch the next prime number. |
| 625 | while not is_prime(number): |
| 626 | number += 1 |
| 627 | |
| 628 | while number < p_number_2: |
| 629 | ans.append(number) |
| 630 | |
| 631 | number += 1 |
| 632 | |
| 633 | # fetch the next prime number. |
| 634 | while not is_prime(number): |
| 635 | number += 1 |
| 636 | |
| 637 | # precondition |
| 638 | assert ( |
| 639 | isinstance(ans, list) |
| 640 | and ans[0] != p_number_1 |
| 641 | and ans[len(ans) - 1] != p_number_2 |
| 642 | ), "'ans' must been a list without the arguments" |
| 643 | |
| 644 | # 'ans' contains not 'pNumber1' and 'pNumber2' ! |