ETA: Following @Heslacher's comments in his answer below, about stepping more than one. Yes, time can be saved, but the step is not constant. The size of step depends on the number of consecutive integers with four different factors found. The search loop could be rewritten:
// 2 * 3 * 5 * 7 = 210.
int step = 1;
for (int i = 210; true; i += step) {
if (FacCount(i) != 4) {
step = 1;
} else if (FacCount(i + 1) != 4) {
step = 2;
} else if (FacCount(i + 2) != 4) {
step = 3;
} else if (FacCount(i + 3) != 4) {
step = 4;
else {
// Only get here with four consecutive four-counts.
return i;
}
}
This avoids checking a number's factor count twice by stepping to the number after the first non-four factor count. As a disadvantage, the logic of the search is not as clear as with the original version.