def _compute_p_max(m_max):
 sqrt_m_max = np.sqrt(m_max)
 p_low = int(np.floor(sqrt_m_max))
 p_high = int(np.ceil((sqrt_m_max + 1)))
 return max((p for p in range(p_low, (p_high + 1)) if ((p * (p - 1)) <= (m_max + 1))))

def _compute_p_max ( m_max ) : sqrt_m_max = np . sqrt ( m_max ) p_low = int ( np . floor ( sqrt_m_max ) ) p_high = int ( np . ceil ( ( sqrt_m_max + 1 ) ) ) return max ( ( p for p in range ( p_low , ( p_high + 1 ) ) if ( ( p * ( p - 1 ) ) <= ( m_max + 1 ) ) ) )
compute the largest positive integer p such that p* <= m_max + 1 .