File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ """
2+
3+ Calculates the nth number in Sylvester's sequence
4+
5+ Source:
6+ https://en.wikipedia.org/wiki/Sylvester%27s_sequence
7+
8+ """
9+
10+
11+ def sylvester (number : int ) -> int :
12+ """
13+ :param number: nth number to calculate in the sequence
14+ :return: the nth number in Sylvester's sequence
15+
16+ >>> sylvester(8)
17+ 113423713055421844361000443
18+
19+ >>> sylvester(-1)
20+ Traceback (most recent call last):
21+ ...
22+ ValueError: The input value of [n=-1] has to be > 0
23+
24+ >>> sylvester(8.0)
25+ Traceback (most recent call last):
26+ ...
27+ AssertionError: The input value of [n=8.0] is not an integer
28+ """
29+ assert isinstance (number , int ), f"The input value of [n={ number } ] is not an integer"
30+
31+ if number == 1 :
32+ return 2
33+ elif number < 1 :
34+ raise ValueError (f"The input value of [n={ number } ] has to be > 0" )
35+ else :
36+ num = sylvester (number - 1 )
37+ lower = num - 1
38+ upper = num
39+ return lower * upper + 1
40+
41+
42+ if __name__ == "__main__" :
43+ print (f"The 8th number in Sylvester's sequence: { sylvester (8 )} " )
You can’t perform that action at this time.
0 commit comments