input: positive integer 'N' > 2 returns a list of prime numbers from 2 up to N (inclusive) This function is more efficient as function 'sieveEr(...)' >>> get_prime_numbers(8) [2, 3, 5, 7] >>> get_prime_numbers(-1) Traceback (most recent call last): ... Asser
(n)
| 139 | |
| 140 | |
| 141 | def get_prime_numbers(n): |
| 142 | """ |
| 143 | input: positive integer 'N' > 2 |
| 144 | returns a list of prime numbers from 2 up to N (inclusive) |
| 145 | This function is more efficient as function 'sieveEr(...)' |
| 146 | |
| 147 | >>> get_prime_numbers(8) |
| 148 | [2, 3, 5, 7] |
| 149 | >>> get_prime_numbers(-1) |
| 150 | Traceback (most recent call last): |
| 151 | ... |
| 152 | AssertionError: 'N' must been an int and > 2 |
| 153 | >>> get_prime_numbers("test") |
| 154 | Traceback (most recent call last): |
| 155 | ... |
| 156 | AssertionError: 'N' must been an int and > 2 |
| 157 | """ |
| 158 | |
| 159 | # precondition |
| 160 | assert isinstance(n, int) and (n > 2), "'N' must been an int and > 2" |
| 161 | |
| 162 | ans = [] |
| 163 | |
| 164 | # iterates over all numbers between 2 up to N+1 |
| 165 | # if a number is prime then appends to list 'ans' |
| 166 | for number in range(2, n + 1): |
| 167 | if is_prime(number): |
| 168 | ans.append(number) |
| 169 | |
| 170 | # precondition |
| 171 | assert isinstance(ans, list), "'ans' must been from type list" |
| 172 | |
| 173 | return ans |
| 174 | |
| 175 | |
| 176 | # ----------------------------------------- |