2.2.4.6 Sympy. Time used: 1.117 (sec). Leaf size: 49
from sympy import * 
t = symbols("t") 
A = symbols("A") 
M = symbols("M") 
k = symbols("k") 
m = symbols("m") 
n = symbols("n") 
x = Function("x") 
ode = Eq(-k*(A - n*x(t))*(M - m*x(t)) + Derivative(x(t), t),0) 
ics = {} 
dsolve(ode,func=x(t),ics=ics)
 
\begin{gather*} \begin {aligned} x{\left (t \right )} = \frac {- \frac {A e^{M n \left (C_{1} + k t\right )}}{n} + \frac {M e^{A m \left (C_{1} + k t\right )}}{m}}{e^{A m \left (C_{1} + k t\right )} - e^{M n \left (C_{1} + k t\right )}} \end {aligned} \end{gather*}
Python version: 3.12.3 (main, Aug 14 2025, 17:47:21) [GCC 13.3.0] 
Sympy version 1.14.0
 
classify_ode(ode,func=x(t)) 
 
('factorable', 'separable', '1st_exact', '1st_power_series', 'lie_group', 'separable_Integral', '1st_exact_Integral')