📄 primenumbers.cpp
字号:
// Exercise 20.12: PrimeNumbers.cpp
// Determines all prime numbers between a user-specified range.
#include <iostream> // required to perform C++ stream I/O
#include <cmath> // required to use the sqrt function
#include <string> // required to access string functions
#include <exception> // required to use exceptions
using namespace std; // for accessing C++ Standard Library members
// function prototype
bool isPrime( int );
// function main begins program execution
int main()
{
// define variables
int lowerBound; // stores lower bound
int upperBound; // stores upper bound
int counter; // stores counter value
// prompt user for and input lower bound
cout << "\nEnter lower bound: ";
cin >> lowerBound;
// prompt user for and input upper bound
cout << "Enter upper bound: ";
cin >> upperBound;
// validate the input values
if ( ( lowerBound <= 0 ) || ( upperBound <= 0 ) )
{
cout << "\nBounds must be greater than 0\n" << endl;
return 1; // indicate that program ended erroneously
} // end if
else if ( upperBound < lowerBound )
{
cout << "\nUpper bound cannot be less than lower bound\n" << endl;
return 1; // indicate that program ended erroneously
} // end else if
else
{
cout << endl;
// loop from lower bound to upper bound
for ( counter = lowerBound; counter <= upperBound; counter++ )
{
// if prime number, display the value
if ( isPrime( counter ) )
{
cout << counter << endl;
} // end if
} // end for
} // end else
cout << endl; // insert newline for readability
return 0; // indicate that program ended successfully
} // end function main
// determine whether the number is prime
bool isPrime( int testValue )
{
// convert int to double
double number = testValue;
// 1 is not a valid prime number
if ( number == 1 )
{
return false;
} // end if
// set the square root of number as limit
double limit = sqrt( number );
// loop until count reaches the square root of number
for ( int count = 2; count <= limit; count++ )
{
// determine if count is a factor of testValue
if ( ( testValue % count ) == 0 )
{
return false; // number is not prime
} // end if
} // end for
return true; // number is prime
} // end function isPrime
/**************************************************************************
* (C) Copyright 1992-2005 by Deitel & Associates, Inc. and *
* Pearson Education, Inc. All Rights Reserved. *
* DISCLAIMER: The authors and publisher of this book have used their *
* best efforts in preparing the book. These efforts include the *
* development, research, and testing of the theories and programs *
* to determine their effectiveness. The authors and publisher make *
* no warranty of any kind, expressed or implied, with regard to these *
* programs or to the documentation contained in these books. The authors *
* and publisher shall not be liable in any event for incidental or *
* consequential damages in connection with, or arising out of, the *
* furnishing, performance, or use of these programs. *
**************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -