Skip to content

Commit 33d7c1a

Browse files
HappyHappy
authored andcommitted
Implement // (floordiv) for IntegerFactorization objects (Issue #40812)
1 parent 0fc8ed5 commit 33d7c1a

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/sage/structure/factorization_integer.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,33 @@ def __sort__(self, key=None):
102102
self.__x.sort(key=key)
103103
else:
104104
self.__x.sort()
105+
106+
def __floordiv__(self, other):
107+
"""
108+
Return the floor division of the integer represented by ``self``
109+
by ``other``.
110+
111+
EXAMPLES::
112+
113+
sage: factor(100) // factor(2)
114+
2 * 5^2
115+
sage: factor(100) // 3
116+
3 * 11
117+
sage: factor(100) // 0
118+
Traceback (most recent call last):
119+
...
120+
ZeroDivisionError: integer division or modulo by zero
121+
"""
122+
numer = self.value()
123+
124+
try:
125+
if hasattr(other, 'value'):
126+
denom = other.value()
127+
else:
128+
denom = other
129+
130+
quotient = numer // denom
131+
return quotient.factor()
132+
133+
except (TypeError, ValueError, AttributeError):
134+
return NotImplemented

0 commit comments

Comments
 (0)