Hi,
I have an assignment that requests that two integers be provided in a range and that these numbers should be checked if they are prime or not.
I am having the following problems with my code.
a) the number 4 shows up in my calculation and four should not be prime.
b)the assignment specifies that the function testValue be converted to a double.
example where testValue (min, max) make testValue double or
double testValue (min, max)
c) the function is_prime should be stated with sqrt, instead of division. example
for (i = 2; i < sqrt(n); i++);
I began with division and it worked fine
example for ( i=2; i < n/2; i++);
can anyone help?
HERE IS MY CODE:
// This is tutorial 10.17 (Prime Numbers Application)
// Date - 11/11/2011
#include <iostream> // required to perform C++ stream I/O
#include <iomanip> // required to manipulate C++ stream I/O
#include <string> // required to access string functions.
#include <cmath> // required to perform math operations.
#include <windows.h> //will be used to perform a series of beeps that creates a sound byte.
using namespace std;
// Defines the function prototype for the range of numbers used.
void testValue( int& min, int& max);
// Defines function prototype for is_prime.
bool is_prime (int n); // boolean prototype determines if true or false.
int main()
{
int min = 0,
max = 0;
cout <<"\n**************************************************";
cout <<"\n>>>> Welcome to the Prime Numbers Application <<<<";
cout <<"\n**************************************************"<<endl<< endl;
// Range of numbers used > 2, max is not specified.
testValue(min, max); // <--------make this double -- double testValue (min, max)
// outputs the prime numbers.
cout << "\nThe Primes Numbers are:\n"; // displays the output.
for (int n = min; n <= max; n++)
{
if (is_prime(n))
{
cout << " " << n << endl;
}
}
cout << endl;
return 0;
}
// defines the range of numbers that will be determined as primes.
void testValue(int& min, int& max)
{
cout <<"\nEnter a lowerbound value: ";
cin >> min;
cout <<"\nEnter an upperbound value: ";
cin >> max;
while (min < 2 || max < 2 && min > max)
{
cout <<"\nPlease enter a number >= 2. Try again."<< endl << endl;
cout <<"Renter lowerbound value: ";
cin >> min;
cout <<"Renter upperbound value: ";
cin >> max;
}
}
// This is the function for is_prime.
bool is_prime(int n);
{
for (int i=2; i < double sqrt (double n); i++); //<--- make this sqrt ( works fine if i divide by n example for (int i=2; i < n/2; i++);
if (n%i==0)
return false;
return true;
}
Any help will be greatly appreciated.