20.09.2015 Views

Programming in C

Kochan - ProgramminginC

Kochan - ProgramminginC

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Def<strong>in</strong><strong>in</strong>g an Array<br />

105<br />

the term “previously generated” should trigger <strong>in</strong> your m<strong>in</strong>d the idea that an array must<br />

be <strong>in</strong>volved here.You can use an array to store each prime number as it is generated.<br />

As a further optimization of the prime number generator program, it can be readily<br />

demonstrated that any nonprime <strong>in</strong>teger n must have as one of its factors an <strong>in</strong>teger that<br />

is less than or equal to the square root of n.This means that it is only necessary to determ<strong>in</strong>e<br />

if a given <strong>in</strong>teger is prime by test<strong>in</strong>g it for even divisibility aga<strong>in</strong>st all prime factors<br />

up to the square root of the <strong>in</strong>teger.<br />

Program 7.4 <strong>in</strong>corporates the previous discussions <strong>in</strong>to a program to generate all<br />

prime numbers up to 50.<br />

Program 7.4 Revis<strong>in</strong>g the Program to Generate Prime Numbers,Version 2<br />

#<strong>in</strong>clude <br />

#<strong>in</strong>clude <br />

// Modified program to generate prime numbers<br />

<strong>in</strong>t ma<strong>in</strong> (void)<br />

{<br />

<strong>in</strong>t p, i, primes[50], primeIndex = 2;<br />

bool isPrime;<br />

primes[0] = 2;<br />

primes[1] = 3;<br />

for ( p = 5; p = primes[i]; ++i )<br />

if ( p % primes[i] == 0 )<br />

isPrime = false;<br />

}<br />

if ( isPrime == true ) {<br />

primes[primeIndex] = p;<br />

++primeIndex;<br />

}<br />

for ( i = 0; i < primeIndex; ++i )<br />

pr<strong>in</strong>tf ("%i ", primes[i]);<br />

pr<strong>in</strong>tf ("\n");<br />

}<br />

return 0;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!