MCPcopy Index your code
hub / github.com/TheAlgorithms/Python / is_carmichael_number

Function is_carmichael_number

maths/special_numbers/carmichael_number.py:35–74  ·  view source on GitHub ↗

Examples: >>> is_carmichael_number(4) False >>> is_carmichael_number(561) True >>> is_carmichael_number(562) False >>> is_carmichael_number(900) False >>> is_carmichael_number(1105) True >>> is_carmichael_number(8911) True >>> is_carmichael_nu

(n: int)

Source from the content-addressed store, hash-verified

33
34
35def is_carmichael_number(n: int) -> bool:
36 """
37 Examples:
38 >>> is_carmichael_number(4)
39 False
40 >>> is_carmichael_number(561)
41 True
42 >>> is_carmichael_number(562)
43 False
44 >>> is_carmichael_number(900)
45 False
46 >>> is_carmichael_number(1105)
47 True
48 >>> is_carmichael_number(8911)
49 True
50 >>> is_carmichael_number(5.1)
51 Traceback (most recent call last):
52 ...
53 ValueError: Number 5.1 must instead be a positive integer
54
55 >>> is_carmichael_number(-7)
56 Traceback (most recent call last):
57 ...
58 ValueError: Number -7 must instead be a positive integer
59
60 >>> is_carmichael_number(0)
61 Traceback (most recent call last):
62 ...
63 ValueError: Number 0 must instead be a positive integer
64 """
65
66 if n <= 0 or not isinstance(n, int):
67 msg = f"Number {n} must instead be a positive integer"
68 raise ValueError(msg)
69
70 return all(
71 power(b, n - 1, n) == 1
72 for b in range(2, n)
73 if greatest_common_divisor(b, n) == 1
74 )
75
76
77if __name__ == "__main__":

Callers 1

Calls 2

greatest_common_divisorFunction · 0.90
powerFunction · 0.70

Tested by

no test coverage detected