I just got thrown the FizzBuzz test a couple days ago. First time I had ever seen it. Startled me that everyone else knows what it is too! I don't know if it would be blindingly obvious without the mod operator.
Let's see: x / y * y == x iff x % y == 0, if your language handles integer division like most do.
If your language doesn't do integer division that way, the naive approach is even easier if you know how to round: x / y == round(x / y) iff x % y == 0.
There are many, many other approaches which will work, too. I saw one guy hand-build an array of ints, initialize to zero, loop over it once with arr[i++] = 0; arr[i++] = 0; arr[i++] = 3 to set the multiples of 3, then do the same thing with the fives except checking to see if there was already a 3 there, then looping over the array a fourth time to handle the actual printing.
That is the kind of competent, worksmanlike programming that runs the world while the can't-do-FizzBuzz guys are hopefully not touching the code too much.
The main danger with using the mod operator is that you can get an off-by-one if you aren't in the habit of using it and forget the exact definition. If that's in doubt, rolling your own thing with a division or a while/if makes for a stronger guarantee of success on the first try.
In an interview you could explain your reasoning for such a detour as well, which might work out better than just "knowing the answer."
var s = require('sys');
for (var i = 1; i < 101; i++) {
if (i%3 == 0 && i%5 == 0) s.puts('fizzbuzz');
else if (i%3 == 0) s.puts('fizz');
else if (i%5 == 0) s.puts('buzz');
else s.puts(i);
}
node.fizzbuzz.js