@@ -46,6 +46,19 @@ def is_prime(number: int) -> bool:
46
46
"""
47
47
input: positive integer 'number'
48
48
returns true if 'number' is prime otherwise false.
49
+
50
+ >>> is_prime(3)
51
+ True
52
+ >>> is_prime(10)
53
+ False
54
+ >>> is_prime(-1)
55
+ Traceback (most recent call last):
56
+ ...
57
+ AssertionError: 'number' must been an int and positive
58
+ >>> is_prime("test")
59
+ Traceback (most recent call last):
60
+ ...
61
+ AssertionError: 'number' must been an int and positive
49
62
"""
50
63
51
64
# precondition
@@ -83,6 +96,16 @@ def sieve_er(n):
83
96
This function implements the algorithm called
84
97
sieve of erathostenes.
85
98
99
+ >>> sieve_er(8)
100
+ [2, 3, 5, 7]
101
+ >>> sieve_er(-1)
102
+ Traceback (most recent call last):
103
+ ...
104
+ AssertionError: 'N' must been an int and > 2
105
+ >>> sieve_er("test")
106
+ Traceback (most recent call last):
107
+ ...
108
+ AssertionError: 'N' must been an int and > 2
86
109
"""
87
110
88
111
# precondition
@@ -116,6 +139,17 @@ def get_prime_numbers(n):
116
139
input: positive integer 'N' > 2
117
140
returns a list of prime numbers from 2 up to N (inclusive)
118
141
This function is more efficient as function 'sieveEr(...)'
142
+
143
+ >>> get_prime_numbers(8)
144
+ [2, 3, 5, 7]
145
+ >>> get_prime_numbers(-1)
146
+ Traceback (most recent call last):
147
+ ...
148
+ AssertionError: 'N' must been an int and > 2
149
+ >>> get_prime_numbers("test")
150
+ Traceback (most recent call last):
151
+ ...
152
+ AssertionError: 'N' must been an int and > 2
119
153
"""
120
154
121
155
# precondition
@@ -142,6 +176,21 @@ def prime_factorization(number):
142
176
"""
143
177
input: positive integer 'number'
144
178
returns a list of the prime number factors of 'number'
179
+
180
+ >>> prime_factorization(0)
181
+ [0]
182
+ >>> prime_factorization(8)
183
+ [2, 2, 2]
184
+ >>> prime_factorization(287)
185
+ [7, 41]
186
+ >>> prime_factorization(-1)
187
+ Traceback (most recent call last):
188
+ ...
189
+ AssertionError: 'number' must been an int and >= 0
190
+ >>> prime_factorization("test")
191
+ Traceback (most recent call last):
192
+ ...
193
+ AssertionError: 'number' must been an int and >= 0
145
194
"""
146
195
147
196
# precondition
@@ -183,12 +232,27 @@ def greatest_prime_factor(number):
183
232
"""
184
233
input: positive integer 'number' >= 0
185
234
returns the greatest prime number factor of 'number'
235
+
236
+ >>> greatest_prime_factor(0)
237
+ 0
238
+ >>> greatest_prime_factor(8)
239
+ 2
240
+ >>> greatest_prime_factor(287)
241
+ 41
242
+ >>> greatest_prime_factor(-1)
243
+ Traceback (most recent call last):
244
+ ...
245
+ AssertionError: 'number' must been an int and >= 0
246
+ >>> greatest_prime_factor("test")
247
+ Traceback (most recent call last):
248
+ ...
249
+ AssertionError: 'number' must been an int and >= 0
186
250
"""
187
251
188
252
# precondition
189
253
assert isinstance (number , int ) and (
190
254
number >= 0
191
- ), "'number' bust been an int and >= 0"
255
+ ), "'number' must been an int and >= 0"
192
256
193
257
ans = 0
194
258
@@ -210,12 +274,27 @@ def smallest_prime_factor(number):
210
274
"""
211
275
input: integer 'number' >= 0
212
276
returns the smallest prime number factor of 'number'
277
+
278
+ >>> smallest_prime_factor(0)
279
+ 0
280
+ >>> smallest_prime_factor(8)
281
+ 2
282
+ >>> smallest_prime_factor(287)
283
+ 7
284
+ >>> smallest_prime_factor(-1)
285
+ Traceback (most recent call last):
286
+ ...
287
+ AssertionError: 'number' must been an int and >= 0
288
+ >>> smallest_prime_factor("test")
289
+ Traceback (most recent call last):
290
+ ...
291
+ AssertionError: 'number' must been an int and >= 0
213
292
"""
214
293
215
294
# precondition
216
295
assert isinstance (number , int ) and (
217
296
number >= 0
218
- ), "'number' bust been an int and >= 0"
297
+ ), "'number' must been an int and >= 0"
219
298
220
299
ans = 0
221
300
@@ -237,11 +316,24 @@ def is_even(number):
237
316
"""
238
317
input: integer 'number'
239
318
returns true if 'number' is even, otherwise false.
319
+
320
+ >>> is_even(0)
321
+ True
322
+ >>> is_even(8)
323
+ True
324
+ >>> is_even(287)
325
+ False
326
+ >>> is_even(-1)
327
+ False
328
+ >>> is_even("test")
329
+ Traceback (most recent call last):
330
+ ...
331
+ AssertionError: 'number' must been an int
240
332
"""
241
333
242
334
# precondition
243
335
assert isinstance (number , int ), "'number' must been an int"
244
- assert isinstance (number % 2 == 0 , bool ), "compare bust been from type bool"
336
+ assert isinstance (number % 2 == 0 , bool ), "compare must been from type bool"
245
337
246
338
return number % 2 == 0
247
339
@@ -253,11 +345,24 @@ def is_odd(number):
253
345
"""
254
346
input: integer 'number'
255
347
returns true if 'number' is odd, otherwise false.
348
+
349
+ >>> is_odd(0)
350
+ False
351
+ >>> is_odd(8)
352
+ False
353
+ >>> is_odd(287)
354
+ True
355
+ >>> is_odd(-1)
356
+ True
357
+ >>> is_odd("test")
358
+ Traceback (most recent call last):
359
+ ...
360
+ AssertionError: 'number' must been an int
256
361
"""
257
362
258
363
# precondition
259
364
assert isinstance (number , int ), "'number' must been an int"
260
- assert isinstance (number % 2 != 0 , bool ), "compare bust been from type bool"
365
+ assert isinstance (number % 2 != 0 , bool ), "compare must been from type bool"
261
366
262
367
return number % 2 != 0
263
368
@@ -270,6 +375,23 @@ def goldbach(number):
270
375
Goldbach's assumption
271
376
input: a even positive integer 'number' > 2
272
377
returns a list of two prime numbers whose sum is equal to 'number'
378
+
379
+ >>> goldbach(8)
380
+ [3, 5]
381
+ >>> goldbach(824)
382
+ [3, 821]
383
+ >>> goldbach(0)
384
+ Traceback (most recent call last):
385
+ ...
386
+ AssertionError: 'number' must been an int, even and > 2
387
+ >>> goldbach(-1)
388
+ Traceback (most recent call last):
389
+ ...
390
+ AssertionError: 'number' must been an int, even and > 2
391
+ >>> goldbach("test")
392
+ Traceback (most recent call last):
393
+ ...
394
+ AssertionError: 'number' must been an int, even and > 2
273
395
"""
274
396
275
397
# precondition
@@ -323,6 +445,23 @@ def kg_v(number1, number2):
323
445
Least common multiple
324
446
input: two positive integer 'number1' and 'number2'
325
447
returns the least common multiple of 'number1' and 'number2'
448
+
449
+ >>> kg_v(8,10)
450
+ 40
451
+ >>> kg_v(824,67)
452
+ 55208
453
+ >>> kg_v(0)
454
+ Traceback (most recent call last):
455
+ ...
456
+ TypeError: kg_v() missing 1 required positional argument: 'number2'
457
+ >>> kg_v(10,-1)
458
+ Traceback (most recent call last):
459
+ ...
460
+ AssertionError: 'number1' and 'number2' must been positive integer.
461
+ >>> kg_v("test","test2")
462
+ Traceback (most recent call last):
463
+ ...
464
+ AssertionError: 'number1' and 'number2' must been positive integer.
326
465
"""
327
466
328
467
# precondition
@@ -395,6 +534,21 @@ def get_prime(n):
395
534
Gets the n-th prime number.
396
535
input: positive integer 'n' >= 0
397
536
returns the n-th prime number, beginning at index 0
537
+
538
+ >>> get_prime(0)
539
+ 2
540
+ >>> get_prime(8)
541
+ 23
542
+ >>> get_prime(824)
543
+ 6337
544
+ >>> get_prime(-1)
545
+ Traceback (most recent call last):
546
+ ...
547
+ AssertionError: 'number' must been a positive int
548
+ >>> get_prime("test")
549
+ Traceback (most recent call last):
550
+ ...
551
+ AssertionError: 'number' must been a positive int
398
552
"""
399
553
400
554
# precondition
@@ -430,6 +584,25 @@ def get_primes_between(p_number_1, p_number_2):
430
584
pNumber1 < pNumber2
431
585
returns a list of all prime numbers between 'pNumber1' (exclusive)
432
586
and 'pNumber2' (exclusive)
587
+
588
+ >>> get_primes_between(3, 67)
589
+ [5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61]
590
+ >>> get_primes_between(0)
591
+ Traceback (most recent call last):
592
+ ...
593
+ TypeError: get_primes_between() missing 1 required positional argument: 'p_number_2'
594
+ >>> get_primes_between(0, 1)
595
+ Traceback (most recent call last):
596
+ ...
597
+ AssertionError: The arguments must been prime numbers and 'pNumber1' < 'pNumber2'
598
+ >>> get_primes_between(-1, 3)
599
+ Traceback (most recent call last):
600
+ ...
601
+ AssertionError: 'number' must been an int and positive
602
+ >>> get_primes_between("test","test")
603
+ Traceback (most recent call last):
604
+ ...
605
+ AssertionError: 'number' must been an int and positive
433
606
"""
434
607
435
608
# precondition
@@ -473,6 +646,19 @@ def get_divisors(n):
473
646
"""
474
647
input: positive integer 'n' >= 1
475
648
returns all divisors of n (inclusive 1 and 'n')
649
+
650
+ >>> get_divisors(8)
651
+ [1, 2, 4, 8]
652
+ >>> get_divisors(824)
653
+ [1, 2, 4, 8, 103, 206, 412, 824]
654
+ >>> get_divisors(-1)
655
+ Traceback (most recent call last):
656
+ ...
657
+ AssertionError: 'n' must been int and >= 1
658
+ >>> get_divisors("test")
659
+ Traceback (most recent call last):
660
+ ...
661
+ AssertionError: 'n' must been int and >= 1
476
662
"""
477
663
478
664
# precondition
@@ -497,6 +683,19 @@ def is_perfect_number(number):
497
683
"""
498
684
input: positive integer 'number' > 1
499
685
returns true if 'number' is a perfect number otherwise false.
686
+
687
+ >>> is_perfect_number(28)
688
+ True
689
+ >>> is_perfect_number(824)
690
+ False
691
+ >>> is_perfect_number(-1)
692
+ Traceback (most recent call last):
693
+ ...
694
+ AssertionError: 'number' must been an int and >= 1
695
+ >>> is_perfect_number("test")
696
+ Traceback (most recent call last):
697
+ ...
698
+ AssertionError: 'number' must been an int and >= 1
500
699
"""
501
700
502
701
# precondition
@@ -525,6 +724,15 @@ def simplify_fraction(numerator, denominator):
525
724
input: two integer 'numerator' and 'denominator'
526
725
assumes: 'denominator' != 0
527
726
returns: a tuple with simplify numerator and denominator.
727
+
728
+ >>> simplify_fraction(10, 20)
729
+ (1, 2)
730
+ >>> simplify_fraction(10, -1)
731
+ (10, -1)
732
+ >>> simplify_fraction("test","test")
733
+ Traceback (most recent call last):
734
+ ...
735
+ AssertionError: The arguments must been from type int and 'denominator' != 0
528
736
"""
529
737
530
738
# precondition
@@ -554,6 +762,19 @@ def factorial(n):
554
762
"""
555
763
input: positive integer 'n'
556
764
returns the factorial of 'n' (n!)
765
+
766
+ >>> factorial(0)
767
+ 1
768
+ >>> factorial(20)
769
+ 2432902008176640000
770
+ >>> factorial(-1)
771
+ Traceback (most recent call last):
772
+ ...
773
+ AssertionError: 'n' must been a int and >= 0
774
+ >>> factorial("test")
775
+ Traceback (most recent call last):
776
+ ...
777
+ AssertionError: 'n' must been a int and >= 0
557
778
"""
558
779
559
780
# precondition
@@ -570,15 +791,27 @@ def factorial(n):
570
791
# -------------------------------------------------------------------
571
792
572
793
573
- def fib (n ) :
794
+ def fib (n : int ) -> int :
574
795
"""
575
796
input: positive integer 'n'
576
797
returns the n-th fibonacci term , indexing by 0
577
798
799
+ >>> fib(0)
800
+ 1
578
801
>>> fib(5)
579
802
8
803
+ >>> fib(20)
804
+ 10946
580
805
>>> fib(99)
581
806
354224848179261915075
807
+ >>> fib(-1)
808
+ Traceback (most recent call last):
809
+ ...
810
+ AssertionError: 'n' must been an int and >= 0
811
+ >>> fib("test")
812
+ Traceback (most recent call last):
813
+ ...
814
+ AssertionError: 'n' must been an int and >= 0
582
815
"""
583
816
584
817
# precondition
0 commit comments