In the following code, in the innermost loop, when d < p is true and p % d == 0 is false,
is variable d being incremented or is incrementing being skipped?
// Program to generate a table of prime numbers
#include <stdio.h>
int main (void)
{
int p, d;
_Bool isPrime;
for ( p = 2; p <= 50; ++p ) {
isPrime = 1;
for ( d = 2; d < p; ++d )
if ( p % d == 0 )
isPrime = 0;
if ( isPrime != 0 )
printf ("%i ", p);
}
printf ("\n");
return 0;
}
When d < p is true then d is being incremented. That’s the only condition that matters, not whether or not the modulus has a value.
Also not that it matters but why not declare d and p inside the loop
Not that it matters much but it’s nice to limit the scope of the variables if you aren’t going to use them after the loop