The calculated distance (air line) between Fort Madison and Hannibal is approximately 64 miles respectively 103 kilometers.
By car or train, the actual journey to Hannibal is certainly longer, as only the direct route (as the crow flies) between Fort Madison and Hannibal has been calculated here.
Air line (approximately)
103 kilometers
55 nautical miles