AP Computer Science
Workshop
Example: Finding Primes
#include <iostream.h>
#include <bool.h>
#include <math.h>
bool IsPrime(int num); // function prototype
int main( )
{ int first, last;
cout << "find primes between what two numbers: ";
cin >> first >> last;
int k; // variables can be declared anywhere in block
for (k = first; k <= last; k++)
{
if (IsPrime (k))
cout << k << endl;
}
return 0;
}
bool IsPrime (int num)
// precondition: num >=2
// postcondition: returns 1 if num is prime, else 0
{
if (num == 2) // the only even prime
return true;
else if (num % 2 == 0) // other even numbers are composite
return false;
else
{
bool prime = true;
int divisor = 3;
int upperLimit = static_cast<int>(sqrt(num) + 1);
while (divisor <= upperLimit)
{
if (num % divisor == 0)
prime = false;
divisor +=2;
}
return prime;
}
}
|
Mark Stehlik, Carnegie Mellon
University |
|