Mine's a bit more complicated than others in here (they always are lol) but I tried to follow the example in the book and work down from the Integer rather than up. It gave me some practise using a while loop as well as a for loop

#import <Foundation/Foundation.h>
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int n, c, r;
NSLog (@"Table of Factorials");
NSLog (@"Integer Factorial");
NSLog (@"------------------------");
for (n = 1; n <= 10; ++n)
{
c = n;
r = n;
while (c-1 > 0)
{
r = r*(c-1);
--c;
}
NSLog (@"%2i %i", n, r);
}
[pool drain];
return 0;
}