@@ -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,18 @@ 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(2)
102
+ [2]
103
+ >>> sieve_er(-1)
104
+ Traceback (most recent call last):
105
+ ...
106
+ AssertionError: 'N' must been an int and > 2
107
+ >>> sieve_er("test")
108
+ Traceback (most recent call last):
109
+ ...
110
+ AssertionError: 'N' must been an int and > 2
86
111
"""
87
112
88
113
# precondition
@@ -116,6 +141,19 @@ def get_prime_numbers(n):
116
141
input: positive integer 'N' > 2
117
142
returns a list of prime numbers from 2 up to N (inclusive)
118
143
This function is more efficient as function 'sieveEr(...)'
144
+
145
+ >>> get_prime_numbers(8)
146
+ [2, 3, 5, 7]
147
+ >>> get_prime_numbers(2)
148
+ [2]
149
+ >>> get_prime_numbers(-1)
150
+ Traceback (most recent call last):
151
+ ...
152
+ AssertionError: 'n' must been an int and > 2
153
+ >>> get_prime_numbers("test")
154
+ Traceback (most recent call last):
155
+ ...
156
+ AssertionError: 'n' must been an int and > 2
119
157
"""
120
158
121
159
# precondition
@@ -142,6 +180,21 @@ def prime_factorization(number):
142
180
"""
143
181
input: positive integer 'number'
144
182
returns a list of the prime number factors of 'number'
183
+
184
+ >>> prime_factorization(0)
185
+ [0]
186
+ >>> prime_factorization(8)
187
+ [2, 2, 2]
188
+ >>> prime_factorization(287)
189
+ [7, 41]
190
+ >>> prime_factorization(-1)
191
+ Traceback (most recent call last):
192
+ ...
193
+ AssertionError: 'number' must been an int and >= 0
194
+ >>> prime_factorization("test")
195
+ Traceback (most recent call last):
196
+ ...
197
+ AssertionError: 'number' must been an int and >= 0
145
198
"""
146
199
147
200
# precondition
@@ -183,12 +236,27 @@ def greatest_prime_factor(number):
183
236
"""
184
237
input: positive integer 'number' >= 0
185
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
186
254
"""
187
255
188
256
# precondition
189
257
assert isinstance (number , int ) and (
190
258
number >= 0
191
- ), "'number' bust been an int and >= 0"
259
+ ), "'number' must been an int and >= 0"
192
260
193
261
ans = 0
194
262
@@ -210,12 +278,27 @@ def smallest_prime_factor(number):
210
278
"""
211
279
input: integer 'number' >= 0
212
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
213
296
"""
214
297
215
298
# precondition
216
299
assert isinstance (number , int ) and (
217
300
number >= 0
218
- ), "'number' bust been an int and >= 0"
301
+ ), "'number' must been an int and >= 0"
219
302
220
303
ans = 0
221
304
@@ -237,11 +320,24 @@ def is_even(number):
237
320
"""
238
321
input: integer 'number'
239
322
returns true if 'number' is even, otherwise false.
323
+
324
+ >>> is_even(0)
325
+ True
326
+ >>> is_even(8)
327
+ True
328
+ >>> is_even(287)
329
+ False
330
+ >>> is_even(-1)
331
+ False
332
+ >>> is_even("test")
333
+ Traceback (most recent call last):
334
+ ...
335
+ AssertionError: 'number' must been an int
240
336
"""
241
337
242
338
# precondition
243
339
assert isinstance (number , int ), "'number' must been an int"
244
- assert isinstance (number % 2 == 0 , bool ), "compare bust been from type bool"
340
+ assert isinstance (number % 2 == 0 , bool ), "compare must been from type bool"
245
341
246
342
return number % 2 == 0
247
343
@@ -253,11 +349,24 @@ def is_odd(number):
253
349
"""
254
350
input: integer 'number'
255
351
returns true if 'number' is odd, otherwise false.
352
+
353
+ >>> is_odd(0)
354
+ False
355
+ >>> is_odd(8)
356
+ False
357
+ >>> is_odd(287)
358
+ True
359
+ >>> is_odd(-1)
360
+ True
361
+ >>> is_odd("test")
362
+ Traceback (most recent call last):
363
+ ...
364
+ AssertionError: 'number' must been an int
256
365
"""
257
366
258
367
# precondition
259
368
assert isinstance (number , int ), "'number' must been an int"
260
- assert isinstance (number % 2 != 0 , bool ), "compare bust been from type bool"
369
+ assert isinstance (number % 2 != 0 , bool ), "compare must been from type bool"
261
370
262
371
return number % 2 != 0
263
372
@@ -270,6 +379,22 @@ def goldbach(number):
270
379
Goldbach's assumption
271
380
input: a even positive integer 'number' > 2
272
381
returns a list of two prime numbers whose sum is equal to 'number'
382
+ >>> goldbach(8)
383
+ [3, 5]
384
+ >>> goldbach(824)
385
+ [3, 821]
386
+ >>> goldbach(0)
387
+ Traceback (most recent call last):
388
+ ...
389
+ AssertionError: 'number' must been an int, even and > 2
390
+ >>> goldbach(-1)
391
+ Traceback (most recent call last):
392
+ ...
393
+ AssertionError: 'number' must been an int, even and > 2
394
+ >>> goldbach("test")
395
+ Traceback (most recent call last):
396
+ ...
397
+ AssertionError: 'number' must been an int, even and > 2
273
398
"""
274
399
275
400
# precondition
@@ -323,6 +448,22 @@ def kg_v(number1, number2):
323
448
Least common multiple
324
449
input: two positive integer 'number1' and 'number2'
325
450
returns the least common multiple of 'number1' and 'number2'
451
+ >>> kg_v(8,10)
452
+ 40
453
+ >>> kg_v(824,67)
454
+ 55208
455
+ >>> kg_v(0)
456
+ Traceback (most recent call last):
457
+ ...
458
+ TypeError: kg_v() missing 1 required positional argument: 'number2'
459
+ >>> kg_v(10,-1)
460
+ Traceback (most recent call last):
461
+ ...
462
+ AssertionError: 'number1' and 'number2' must been positive integer.
463
+ >>> kg_v("test","test2")
464
+ Traceback (most recent call last):
465
+ ...
466
+ AssertionError: 'number1' and 'number2' must been positive integer.
326
467
"""
327
468
328
469
# precondition
@@ -395,6 +536,21 @@ def get_prime(n):
395
536
Gets the n-th prime number.
396
537
input: positive integer 'n' >= 0
397
538
returns the n-th prime number, beginning at index 0
539
+
540
+ >>> get_prime(0)
541
+ 2
542
+ >>> get_prime(8)
543
+ 23
544
+ >>> get_prime(824)
545
+ 6337
546
+ >>> get_prime(-1)
547
+ Traceback (most recent call last):
548
+ ...
549
+ AssertionError: 'number' must been a positive int
550
+ >>> get_prime("test")
551
+ Traceback (most recent call last):
552
+ ...
553
+ AssertionError: 'number' must been a positive int
398
554
"""
399
555
400
556
# precondition
@@ -430,6 +586,25 @@ def get_primes_between(p_number_1, p_number_2):
430
586
pNumber1 < pNumber2
431
587
returns a list of all prime numbers between 'pNumber1' (exclusive)
432
588
and 'pNumber2' (exclusive)
589
+
590
+ >>> get_primes_between(3,67)
591
+ [5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61]
592
+ >>> get_primes_between(0)
593
+ Traceback (most recent call last):
594
+ ...
595
+ TypeError: get_primes_between() missing 1 required positional argument: 'p_number_2'
596
+ >>> get_primes_between(0,1)
597
+ Traceback (most recent call last):
598
+ ...
599
+ AssertionError: The arguments must been prime numbers and 'pNumber1' < 'pNumber2'
600
+ >>> get_primes_between(-1,3)
601
+ Traceback (most recent call last):
602
+ ...
603
+ AssertionError: 'number' must been an int and positive
604
+ >>> get_primes_between("test","test")
605
+ Traceback (most recent call last):
606
+ ...
607
+ AssertionError: 'number' must been an int and positive
433
608
"""
434
609
435
610
# precondition
@@ -473,6 +648,19 @@ def get_divisors(n):
473
648
"""
474
649
input: positive integer 'n' >= 1
475
650
returns all divisors of n (inclusive 1 and 'n')
651
+
652
+ >>> get_divisors(8)
653
+ [1, 2, 4, 8]
654
+ >>> get_divisors(824)
655
+ [1, 2, 4, 8, 103, 206, 412, 824]
656
+ >>> get_divisors(-1)
657
+ Traceback (most recent call last):
658
+ ...
659
+ AssertionError: 'n' must been int and >= 1
660
+ >>> get_divisors("test")
661
+ Traceback (most recent call last):
662
+ ...
663
+ AssertionError: 'n' must been int and >= 1
476
664
"""
477
665
478
666
# precondition
@@ -497,6 +685,19 @@ def is_perfect_number(number):
497
685
"""
498
686
input: positive integer 'number' > 1
499
687
returns true if 'number' is a perfect number otherwise false.
688
+
689
+ >>> is_perfect_number(28)
690
+ True
691
+ >>> is_perfect_number(824)
692
+ False
693
+ >>> is_perfect_number(-1)
694
+ Traceback (most recent call last):
695
+ ...
696
+ AssertionError: 'number' must been an int and >= 1
697
+ >>> is_perfect_number("test")
698
+ Traceback (most recent call last):
699
+ ...
700
+ AssertionError: 'number' must been an int and >= 1
500
701
"""
501
702
502
703
# precondition
@@ -525,6 +726,17 @@ def simplify_fraction(numerator, denominator):
525
726
input: two integer 'numerator' and 'denominator'
526
727
assumes: 'denominator' != 0
527
728
returns: a tuple with simplify numerator and denominator.
729
+
730
+ >>> simplify_fraction(10,20)
731
+ (1,2)
732
+ >>> simplify_fraction(10,-1)
733
+ Traceback (most recent call last):
734
+ ...
735
+ AssertionError: The arguments must been from type int and 'denominator' != 0"
736
+ >>> simplify_fraction("test","test")
737
+ Traceback (most recent call last):
738
+ ...
739
+ AssertionError: The arguments must been from type int and 'denominator' != 0"
528
740
"""
529
741
530
742
# precondition
@@ -554,6 +766,19 @@ def factorial(n):
554
766
"""
555
767
input: positive integer 'n'
556
768
returns the factorial of 'n' (n!)
769
+
770
+ >>> factorial(0)
771
+ 1
772
+ >>> factorial(20)
773
+ 2432902008176640000
774
+ >>> factorial(-1)
775
+ Traceback (most recent call last):
776
+ ...
777
+ AssertionError: 'n' must been a int and >= 0
778
+ >>> factorial("test")
779
+ Traceback (most recent call last):
780
+ ...
781
+ AssertionError: 'n' must been a int and >= 0
557
782
"""
558
783
559
784
# precondition
@@ -574,6 +799,19 @@ def fib(n):
574
799
"""
575
800
input: positive integer 'n'
576
801
returns the n-th fibonacci term , indexing by 0
802
+
803
+ >>> fib(0)
804
+ 1
805
+ >>> fib(20)
806
+ 10946
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
577
815
"""
578
816
579
817
# precondition
@@ -589,3 +827,8 @@ def fib(n):
589
827
fib1 = tmp
590
828
591
829
return ans
830
+
831
+ if __name__ == "__main__" :
832
+ import doctest
833
+
834
+ doctest .testmod ()
0 commit comments