Write a Rust program that takes a user input integer and recursively calculates its factorial. Your program should prompt the user for input, handle input validation, and output the result. Use appropriate Rust programming syntax and conventions to make your program easy to read and maintain.
This prompt doesn't seem malicious.