jugaadcode 0.1.15__tar.gz → 0.1.16__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/PKG-INFO +1 -1
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/pyproject.toml +1 -1
- jugaadcode-0.1.16/src/jugaadcode/trailing_zeros.py +64 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode.egg-info/PKG-INFO +1 -1
- jugaadcode-0.1.15/src/jugaadcode/trailing_zeros.py +0 -16
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/README.md +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/setup.cfg +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/__init__.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/anagram.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/armstrong.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/binary_search.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/bubble_sort.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/capitalize_words.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/character_frequency.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/climbing_stairs.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/coin_change.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/count_vowels.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/counting_sort.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/duplicate_number.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/even_odd.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/factorial.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/factorial_trailing_zeros_direct.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/factorial_with_trailing_zeros.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/fibonacci.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/find_max.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/find_min.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/first_non_repeating.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/gcd.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/harshad_number.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/input_utils.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/insertion_sort.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/kth_largest.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/lcm.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/linear_search.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/longest_consecutive.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/longest_word.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/matrix_transpose.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/maximum_subarray.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/merge_sort.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/move_zeros.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/pair_with_difference.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/palindrome.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/perfect_number.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/power.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/prime.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/quick_sort.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/remove_duplicates_array.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/remove_duplicates_string.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/reverse_linked_list.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/reverse_number.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/reverse_string.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/second_largest.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/selection_sort.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/strong_number.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/subsequence.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/sum_of_digits.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/two_sum.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/valid_parentheses.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode/word_count.py +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode.egg-info/SOURCES.txt +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode.egg-info/dependency_links.txt +0 -0
- {jugaadcode-0.1.15 → jugaadcode-0.1.16}/src/jugaadcode.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
from collections.abc import Iterable
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def trailing_zeros(*args):
|
|
5
|
+
"""
|
|
6
|
+
Count trailing zeros in the factorial of non-negative integers.
|
|
7
|
+
|
|
8
|
+
Examples:
|
|
9
|
+
trailing_zeros(5) -> 1
|
|
10
|
+
trailing_zeros(10) -> 2
|
|
11
|
+
trailing_zeros([5, 10, 25]) -> [1, 2, 6]
|
|
12
|
+
trailing_zeros((5, 10, 25)) -> (1, 2, 6)
|
|
13
|
+
trailing_zeros(5, 10, 25) -> (1, 2, 6)
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
def calculate(n):
|
|
17
|
+
if isinstance(n, bool) or not isinstance(n, int):
|
|
18
|
+
raise TypeError("Input must be an integer.")
|
|
19
|
+
|
|
20
|
+
if n < 0:
|
|
21
|
+
raise ValueError("Number must be non-negative.")
|
|
22
|
+
|
|
23
|
+
count = 0
|
|
24
|
+
|
|
25
|
+
while n > 0:
|
|
26
|
+
n //= 5
|
|
27
|
+
count += n
|
|
28
|
+
|
|
29
|
+
return count
|
|
30
|
+
|
|
31
|
+
# Interactive input
|
|
32
|
+
if not args:
|
|
33
|
+
n = int(input("Enter a non-negative integer: "))
|
|
34
|
+
return calculate(n)
|
|
35
|
+
|
|
36
|
+
# Multiple positional arguments
|
|
37
|
+
if len(args) > 1:
|
|
38
|
+
return tuple(calculate(n) for n in args)
|
|
39
|
+
|
|
40
|
+
value = args[0]
|
|
41
|
+
|
|
42
|
+
# Single integer
|
|
43
|
+
if isinstance(value, int) and not isinstance(value, bool):
|
|
44
|
+
return calculate(value)
|
|
45
|
+
|
|
46
|
+
# Reject strings and bytes
|
|
47
|
+
if isinstance(value, (str, bytes, bytearray)):
|
|
48
|
+
raise TypeError(
|
|
49
|
+
"Input must be an integer or an iterable of integers."
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
# Lists, tuples, and other iterables
|
|
53
|
+
if isinstance(value, Iterable):
|
|
54
|
+
numbers = list(value)
|
|
55
|
+
results = [calculate(n) for n in numbers]
|
|
56
|
+
|
|
57
|
+
if isinstance(value, tuple):
|
|
58
|
+
return tuple(results)
|
|
59
|
+
|
|
60
|
+
return results
|
|
61
|
+
|
|
62
|
+
raise TypeError(
|
|
63
|
+
"Input must be an integer or an iterable of integers."
|
|
64
|
+
)
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
from collections.abc import Iterable
|
|
2
|
-
|
|
3
|
-
def trailing_zeros(*args):
|
|
4
|
-
if n is None:
|
|
5
|
-
n = int(input("Enter a number: "))
|
|
6
|
-
|
|
7
|
-
if n < 0:
|
|
8
|
-
raise ValueError("Number must be non-negative")
|
|
9
|
-
|
|
10
|
-
count = 0
|
|
11
|
-
|
|
12
|
-
while n > 0:
|
|
13
|
-
n //= 5
|
|
14
|
-
count += n
|
|
15
|
-
|
|
16
|
-
return count
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|