Though Euclid probably knew there were infinitely many primes, Euclid was the first to provide a proof of the fact. Since then, mathematicians have asked much more detailed and difficult questions about the location and size of the prime numbers. Arithmetic progressions are very easily described subsets of the integers, yet they are infinite so it might be the case that they contain infinitely many prime numbers. Using Euclid’s original proof of the infiniteness of the primes as a model, we can show some specific arithmetic progressions contain infinitely many primes. The problem is, as the arithmetic progression changes Euclid based proofs become difficult. Our appreciation goes to the french mathematician Johann Dirichlet for describing in general when an arithmetic progression assumes an unbounded number of primes. Dirichlet's theorem tells us \(\{a + tk\}_{k \geq 1}\) contains infinitely many primes if \((a, t) = 1\). In proving this theorem, Dirichlet appeals not to Euclid's proof of there being infinitely many primes, but rather to a proof given Euler. Euler's proof is based on results from calculus, so it is ultimately through analytic methods that Dirichlet was able to prove the general statement of his theorem. This paper will first present both Euclid and Euler style proofs of specific cases of Dirichlet's theorem. Then using this Euler style proof as a guide we will give a roadmap to the proof of Dirichlet's general theorem. Finally, we will develop the background needed for the general proof and give a rigorous presentation of it.