// Factorial function fact(n) { if (n == 0) { return 1; } else { return n*fact(n-1); } } // String length function strlen (s) { var i; i = 0; while (s[i] != 0) i = i + 1; return i; } // String concatenation function (s must have enough length) strcat(s, t) { var i,j; i = strlen(s); j = 0; while (t[j] != 0) { s[i] = t[j]; i = i + 1; j = j + 1; } s[i] = 0; return s; } // Main routine main() { var ln[80], n; writeln('N?'); n = str2int(readln(ln)); var buf[80]; buf[0]=0; strcat(buf,int2str(ln, n)); strcat(buf,'! ='); strcat(buf,int2str(ln, fact(n))); writeln(buf); }