#define _GNU_SOURCE
#include <unistd.h>
#include <sys/syscall.h>
int main( void )
{
int i = 1;
const char fizz[] = "Fizz";
const char buzz[] = "Buzz";
const char nl[] = "\n";
char digits[ 2 ];
while( 1 )
{
char *p = digits;
*p = i / 10 + '0';
p += ( i >= 10 );
*p = i % 10 + '0';
p++;
syscall( SYS_exit * ( i > 100 ) + SYS_write * ( i <= 100 ), i <= 100,
digits, ( i % 3 != 0 && i % 5 != 0 ) * ( p - digits ) );
syscall( SYS_write, 1, fizz, ( i % 3 == 0 ) * ( sizeof( fizz ) - 1 ) );
syscall( SYS_write, 1, buzz, ( i % 5 == 0 ) * ( sizeof( buzz ) - 1 ) );
syscall( SYS_write, 1, nl, sizeof( nl ) - 1 );
i++;
}
/* NOT REACHED */
return 0;
}
I2RlZmluZSBfR05VX1NPVVJDRQojaW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgoKaW50IG1haW4oIHZvaWQgKQp7CglpbnQgaSA9IDE7Cgljb25zdCBjaGFyIGZpenpbXSA9ICJGaXp6IjsKCWNvbnN0IGNoYXIgYnV6eltdID0gIkJ1enoiOwoJY29uc3QgY2hhciBubFtdID0gIlxuIjsKCWNoYXIgZGlnaXRzWyAyIF07Cgl3aGlsZSggMSApCgl7CgkJY2hhciAqcCA9IGRpZ2l0czsKCQkqcCA9IGkgLyAxMCArICcwJzsKCQlwICs9ICggaSA+PSAxMCApOwoJCSpwID0gaSAlIDEwICsgJzAnOwoJCXArKzsKCQlzeXNjYWxsKCBTWVNfZXhpdCAqICggaSA+IDEwMCApICsgU1lTX3dyaXRlICogKCBpIDw9IDEwMCApLCBpIDw9IDEwMCwKCQkgICAgICAgICBkaWdpdHMsICggaSAlIDMgIT0gMCAmJiBpICUgNSAhPSAwICkgKiAoIHAgLSBkaWdpdHMgKSApOwoJCXN5c2NhbGwoIFNZU193cml0ZSwgMSwgZml6eiwgKCBpICUgMyA9PSAwICkgKiAoIHNpemVvZiggZml6eiApIC0gMSApICApOwoJCXN5c2NhbGwoIFNZU193cml0ZSwgMSwgYnV6eiwgKCBpICUgNSA9PSAwICkgKiAoIHNpemVvZiggYnV6eiApIC0gMSApICApOwoJCXN5c2NhbGwoIFNZU193cml0ZSwgMSwgbmwsIHNpemVvZiggbmwgKSAtIDEgKTsKCQlpKys7Cgl9CgkvKiBOT1QgUkVBQ0hFRCAqLwoJcmV0dXJuIDA7Cn0K