This document provides an exposition on Shor's algorithm and its implementation using quantum circuits and various quantum programming tools including Rigetti's Pyquil, Microsoft's Q#/C#, and IBM's Qiskit. It covers quantum arithmetic circuits, detailed descriptions of Shor's algorithm, and classical examples for understanding the quantum period finding process. Additionally, it discusses the architecture and qubit requirements for successfully factoring large numbers using quantum computing techniques.