MCPcopy
hub / github.com/TheAlgorithms/Python / smallest_prime_factor

Function smallest_prime_factor

maths/primelib.py:277–313  ·  view source on GitHub ↗

input: integer 'number' >= 0 returns the smallest prime number factor of 'number' >>> smallest_prime_factor(0) 0 >>> smallest_prime_factor(8) 2 >>> smallest_prime_factor(287) 7 >>> smallest_prime_factor(-1) Traceback (most recent call last): ...

(number)

Source from the content-addressed store, hash-verified

275
276
277def smallest_prime_factor(number):
278 """
279 input: integer 'number' >= 0
280 returns the smallest prime number factor of 'number'
281
282 >>> smallest_prime_factor(0)
283 0
284 >>> smallest_prime_factor(8)
285 2
286 >>> smallest_prime_factor(287)
287 7
288 >>> smallest_prime_factor(-1)
289 Traceback (most recent call last):
290 ...
291 AssertionError: 'number' must been an int and >= 0
292 >>> smallest_prime_factor("test")
293 Traceback (most recent call last):
294 ...
295 AssertionError: 'number' must been an int and >= 0
296 """
297
298 # precondition
299 assert isinstance(number, int) and (number >= 0), (
300 "'number' must been an int and >= 0"
301 )
302
303 ans = 0
304
305 # prime factorization of 'number'
306 prime_factors = prime_factorization(number)
307
308 ans = min(prime_factors)
309
310 # precondition
311 assert isinstance(ans, int), "'ans' must been from type int"
312
313 return ans
314
315
316# ----------------------

Callers

nothing calls this directly

Calls 1

prime_factorizationFunction · 0.85

Tested by

no test coverage detected