#include <stdio.h>

void filter(int (*cmp)(const int), int *list, int len){
	int i;
	for(i = 0; i < len; i++){
		if(cmp(list[i])) printf("%d, %s\n", i, (cmp(list[i]) == 1) ? "FIZZ BUZZ" : (cmp(list[i]) == 2) ? "FIZZ" : "BUZZ");
	}
}

int lambda(int i){
	if((i % 3 == 0) && (i % 5 == 0)) return 1; //"FIZZ BUZZ";
	if(i % 3 == 0) return 2; //"FIZZ";
	if(i % 5 == 0) return 3; // "BUZZ";
	return 0;
}

int main(void) {
	int i;
	int list[100];
	int (*p)(const int);
	
	for(i = 0; i <= 100; i++)
		list[i] = i;
	p = lambda;
	filter(p, list, 100);
	
	return 0;
}
