**C** #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { // iteratively compute factorial here long int n = 0, i = 0, r = 1 /* product starts at one */; if (argc > 1) { n = strtol(argv[1], NULL, 10); if (n < 0) { printf("arg must be >= 0\n"); exit(-1); } } i = n; while (i) { r = r * i; i--; } printf("%ld factorial is %ld\n", n, r); // done } **Pronounciation:** pound include standard<br> I/O dot h pound include<br> standard lib dot h<br> int main int arg c<br> comma char star star arg v<br> open brace comment<br> iteratively<br> compute factorial here<br> long int n equals<br> zero comma i<br> equals zero comma r<br> equals one comment<br> product starts at one<br> semicolon if arg c<br> is greater than one<br> open brace n is<br> str-to-l of arg v sub<br> one comma NULL comma ten<br> semicolon if<br> n less than zero open<br> brace printf arg must<br> be greater than or<br> equal to zero backslash<br> n semicolon<br> exit negative<br> one semicolon end brace<br> end brace i equals<br> n semicolon<br> while i open brace r<br> equals r times i<br> semicolon i<br> decrement semicolon<br> close brace comment print<br> the result printf<br> percent d factorial<br> equals percent d<br> whack n comma n<br> comma r semicolon<br> comment done end brace<br>