#include <stdio.h>
#include <limits.h>

int main(int argc, char *argv[])
{
	int n;
	int nf=1;
	int nfl=1;
	int nfs=1;


	printf("Faculties for common integers:\n");
	for(n=1;n<15;n++) {	
		nf*=(nf>INT_MAX/2)?0:n;
		if(!nf) break;
		printf("Faculty: %d: %d\t\t(=%x)\n",n,nf,nf);
	}

	printf("\n\nFaculties for short integers (max=%x):\n",SHRT_MAX/2);
	for(n=1;n<15;n++) {	
		nfs*=(nfs>SHRT_MAX/2)?0:n;
		if(!nfs) break;
		printf("Faculty: %d: %d\t\t(=%x)\n",n,nfs,nfs);
	}

	printf("\n\nFaculties for long integers:\n");
	for(n=1;n<15;n++) {	
		nfl*=(nfl>LONG_MAX/2)?0:n;
		if(!nfl) break;
		printf("Faculty: %d: %d\t\t(=%x)\n",n,nfl,nfl);
	}
}

