In the Hamiltonian p-median problem (HpMP), the target is to find p cycles that partition a given undirected graph with the objective of minimizing the total sum of the costs of these p cycles. Even though this problem has several applications, the current state-of-the-art algorithms are only able to solve instances with up to 100 nodes. In this paper, we devise a branch-and-price algorithm that is able to solve instances with up to 318 nodes. To achieve this, we modified the set partitioning formulation of HpMPa minor modification yet with significant algorithmic and computational advantages. Furthermore, our computational results demonstrate that the practical complexity of HpMP and the performance of the algorithms to solve it strongly depend on the value of p. In addition, to solve the pricing problem, we make contributions on a couple of problems that are important on their own right: (1) we develop a new efficient algorithm to find the least-cost cycle in undirected graphs with arbitrary edge costs and no negative cycles; and (2) we develop an algorithm to find the most negative cycle in undirected graphs with arbitrary edge costs. Finally, we prove that for every value of p, HpMP is NP-hard even when restricted to Euclidean graphs.