/* I figured I'd describe the code here, since I didn't write it. Since I failed the lesson, I'll at least explain it. To continue on then! */ #include //#include is not needed, don't know why you put it there. //I just put it there out of habit... I usually need something or other later #define FIRST 2 // Obvious #define LAST 1000 // Read previous comment. char prime[1001] = {0}; /* Dont' understand "{0}", errors without it. Either way, declare array "prime" with 1001 elements, with the last element declared NULL */ /* {0} means fill the array with 0's: 000000000000. {0,1,2,3} would fill it in a pattern: 0123012301230123... */ main(void) { unsigned long d=0; // I know unsigned means 16 or 32 bits, unsigned long x=0; // and long means 32..But why use it? //unsigned means that it can only be positive. This makes no difference on how data is stored, but it lets the compiler know that I don't need negative numbers. example: 8-bit signed goes from -128 to +127. 8-bit unsigned would be 0 to 255. The H.O. bit makes it negative in signed mode. //long is 32, but we use it for maximum capacity. It gives us a high max value, so we can run really high benchmarks later. the max value is 2^32 for a long. printf("Beginning\!\n"); for (x = FIRST; x <= LAST; x++) // Obvious { for (d=2; d