input: positive integer 'number' >= 0 returns the greatest prime number factor of 'number' >>> greatest_prime_factor(0) 0 >>> greatest_prime_factor(8) 2 >>> greatest_prime_factor(287) 41 >>> greatest_prime_factor(-1) Traceback (most recent call last):
(number)
| 233 | |
| 234 | |
| 235 | def greatest_prime_factor(number): |
| 236 | """ |
| 237 | input: positive integer 'number' >= 0 |
| 238 | returns the greatest prime number factor of 'number' |
| 239 | |
| 240 | >>> greatest_prime_factor(0) |
| 241 | 0 |
| 242 | >>> greatest_prime_factor(8) |
| 243 | 2 |
| 244 | >>> greatest_prime_factor(287) |
| 245 | 41 |
| 246 | >>> greatest_prime_factor(-1) |
| 247 | Traceback (most recent call last): |
| 248 | ... |
| 249 | AssertionError: 'number' must been an int and >= 0 |
| 250 | >>> greatest_prime_factor("test") |
| 251 | Traceback (most recent call last): |
| 252 | ... |
| 253 | AssertionError: 'number' must been an int and >= 0 |
| 254 | """ |
| 255 | |
| 256 | # precondition |
| 257 | assert isinstance(number, int) and (number >= 0), ( |
| 258 | "'number' must been an int and >= 0" |
| 259 | ) |
| 260 | |
| 261 | ans = 0 |
| 262 | |
| 263 | # prime factorization of 'number' |
| 264 | prime_factors = prime_factorization(number) |
| 265 | |
| 266 | ans = max(prime_factors) |
| 267 | |
| 268 | # precondition |
| 269 | assert isinstance(ans, int), "'ans' must been from type int" |
| 270 | |
| 271 | return ans |
| 272 | |
| 273 | |
| 274 | # ---------------------------------------------- |
nothing calls this directly
no test coverage detected