topical media & game development

#### basic-program-code-04-Ex4-11.c

? / basic-program-code-04-Ex4-11.c

```
// EX4_11.CPP
// Calculating primes using dynamic memory allocation
include <iostream>
include <iomanip>
using std::cin;
using std::cout;
using std::endl;
using std::setw;

int main()
{
long* pprime = 0;              // Pointer to prime array
long trial = 5;                // Candidate prime
int count = 3;                 // Count of primes found
int found = 0;                 // Indicates when a prime is found
int max = 0;                   // Number of primes required

cout << endl
<< "Enter the number of primes you would like (at least 4): ";
cin >> max;                    // Number of primes required

if(max < 4)                    // Test the user input, if less than 4
max = 4;                    // ensure it is at least 4

pprime = new long[max];

*pprime = 2;                   // Insert three
*(pprime + 1) = 3;             // seed primes
*(pprime + 2) = 5;

do
{
trial += 2;                            // Next value for checking
found = 0;                             // Set found indicator
for(int i = 0; i < count; i++)         // Division by existing primes
{
found =(trial % *(pprime + i)) == 0;// True for exact division
if(found)                           // If division is exact
break;                           // it's not a prime
}
if (found == 0)                  // We got one...
*(pprime + count++) = trial;  // ...so save it in primes array
} while(count < max);

// Output primes 5 to a line
for(int i = 0; i < max; i++)
{
if(i % 5 == 0)                   // New line on 1st, and every 5th line
cout << endl;
cout << setw(10) << *(pprime + i);
}
delete [] pprime;                         // Free up memory
pprime = 0;                               // and reset the pointer
cout << endl;
return 0;
}
```

(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.