This paper studies controllability of a discrete-time linear dynamical system using nonnegative and sparse inputs. These constraints on the control input arise naturally in many real-life systems where the external influence on the system is unidirectional, and activating each input node adds to the cost of control. We derive the necessary and sufficient conditions for controllability of the system, without imposing any constraints on the system matrices. Unlike the well-known Kalman rank based controllability criteria, the conditions presented in this paper can be verified in polynomial time, and the verification complexity is independent of the sparsity level. The proof of the result is based on the analytical tools concerning the properties of a convex cone. Our results also provide a closed-form expression for the minimum number of control nodes to be activated at every time instant to ensure controllability of the system using positive controls.