If you want to detect a frequency with a DFT, yes, you'll need an integer number of signal periods in your observation. The smallest useful integer is 1.
On the other hand, why use the DFT to detect a single frequency? Aside from the obvious "use Goertzel if you only care about a single frequency", which would only lead you to a filter of the same length as said DFT, you could use one of many parametric and non-parametric frequency estimators.
A simple low- or bandpass-filter might totally do it, depending on your application!
Other estimators for when you know where you want to evaluate the spectrum include the MUSIC algorithm (which can be really low complexity if you know there's exactly one tone in your signal, and you know your SNR is OK), or very simple fast segmented autocorrelation methods.