#include <stdio.h>
char* ans[] =
{
/* 0 */ "1",
/* 1 */ "1",
/* 2 */ "2",
/* 3 */ "6",
/* 4 */ "24",
/* 5 */ "120",
/* 6 */ "720",
/* 7 */ "5,040",
/* 8 */ "40,320",
/* 9 */ "362,880",
/* 10 */ "3,628,800",
/* 11 */ "39,916,800",
/* 12 */ "479,001,600",
/* 13 */ "6,227,020,800",
/* 14 */ "87,178,291,200",
/* 15 */ "1,307,674,368,000",
/* 16 */ "20,922,789,888,000",
/* 17 */ "355,687,428,096,000",
/* 18 */ "6,402,373,705,728,000",
/* 19 */ "121,645,100,408,832,000",
/* 20 */ "2,432,902,008,176,640,000"
};
void factorial(int n)
{
if(n < 0 || n > 20) /* Error checking */
{
printf("ERROR: Number out of range\n"); }
else
{
}
}
int main(int argc, char* argv[])
{
int i;
for(i = -1; i<=21; factorial(i++));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpjaGFyKiBhbnNbXSA9IAp7CiAgICAvKiAgIDAgKi8gIjEiLAogICAgLyogICAxICovICIxIiwKICAgIC8qICAgMiAqLyAiMiIsCiAgICAvKiAgIDMgKi8gIjYiLAogICAgLyogICA0ICovICIyNCIsCiAgICAvKiAgIDUgKi8gIjEyMCIsCiAgICAvKiAgIDYgKi8gIjcyMCIsCiAgICAvKiAgIDcgKi8gIjUsMDQwIiwKICAgIC8qICAgOCAqLyAiNDAsMzIwIiwKICAgIC8qICAgOSAqLyAiMzYyLDg4MCIsCiAgICAvKiAgMTAgKi8gIjMsNjI4LDgwMCIsCiAgICAvKiAgMTEgKi8gIjM5LDkxNiw4MDAiLAogICAgLyogIDEyICovICI0NzksMDAxLDYwMCIsCiAgICAvKiAgMTMgKi8gIjYsMjI3LDAyMCw4MDAiLAogICAgLyogIDE0ICovICI4NywxNzgsMjkxLDIwMCIsCiAgICAvKiAgMTUgKi8gIjEsMzA3LDY3NCwzNjgsMDAwIiwKICAgIC8qICAxNiAqLyAiMjAsOTIyLDc4OSw4ODgsMDAwIiwKICAgIC8qICAxNyAqLyAiMzU1LDY4Nyw0MjgsMDk2LDAwMCIsCiAgICAvKiAgMTggKi8gIjYsNDAyLDM3Myw3MDUsNzI4LDAwMCIsCiAgICAvKiAgMTkgKi8gIjEyMSw2NDUsMTAwLDQwOCw4MzIsMDAwIiwKICAgIC8qICAyMCAqLyAiMiw0MzIsOTAyLDAwOCwxNzYsNjQwLDAwMCIKfTsKICAgIAp2b2lkIGZhY3RvcmlhbChpbnQgbikKewogICAgcHJpbnRmKCJmYWNvcmlhbCglZCkgPSAiLCBuKTsKICAgIAogICAgaWYobiA8IDAgfHwgbiA+IDIwKSAvKiBFcnJvciBjaGVja2luZyAqLwogICAgewogICAgICAgIHByaW50ZigiRVJST1I6IE51bWJlciBvdXQgb2YgcmFuZ2VcbiIpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIHByaW50ZigiJXNcbiIsIGFuc1tuXSk7CiAgICB9Cgp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQp7CiAgICBpbnQgaTsKICAgIGZvcihpID0gLTE7IGk8PTIxOyBmYWN0b3JpYWwoaSsrKSk7CiAgICByZXR1cm4gMDsKfQ==
facorial(-1) = ERROR: Number out of range
facorial(0) = 1
facorial(1) = 1
facorial(2) = 2
facorial(3) = 6
facorial(4) = 24
facorial(5) = 120
facorial(6) = 720
facorial(7) = 5,040
facorial(8) = 40,320
facorial(9) = 362,880
facorial(10) = 3,628,800
facorial(11) = 39,916,800
facorial(12) = 479,001,600
facorial(13) = 6,227,020,800
facorial(14) = 87,178,291,200
facorial(15) = 1,307,674,368,000
facorial(16) = 20,922,789,888,000
facorial(17) = 355,687,428,096,000
facorial(18) = 6,402,373,705,728,000
facorial(19) = 121,645,100,408,832,000
facorial(20) = 2,432,902,008,176,640,000
facorial(21) = ERROR: Number out of range