Hi!
I'm almost done with this program, but I have a problem: Whenever it displays the prime numbers, it throws in non prime numbers that are odd (like 9 and 15) Here is the code so far.
/*
File: isprime.cpp
Created by: Ricardo Renta
Creation Date: 11/8/11
Synopsis:
This program reads in a minimum and maximum integer greater than 1
and returns all primes between the minimum and maximum.
*/
#include <iostream>
#include <cmath>
using namespace std;
// FUNCTION PROTOTYPE FOR read_range
void read_range( int& imin, int& imax);
// FUNCTION PROTOTYPE FOR is_prime
bool is_prime (int k); //boolean prototype for true and false
// DO NOT MODIFY THE MAIN ROUTINE IN ANY WAY
int main()
{
int imin(0), imax(0);
// Read in range
read_range(imin, imax);
// Print prime numbers
cout << "Primes:";
for (int k = imin; k <= imax; k++) {
if (is_prime(k))
{
cout << " " << k;
}
}
cout << endl;
return 0;
}
// DEFINE FUNCTION read_range() HERE:
void read_range(int& imin, int& imax)
{
cout << "Enter a minimum and maximum value:";
cin >> imin >> imax;
while (imin < 2 || imax < 2 && imin > imax)
{ cout << "The minimum and maximum values must be at least 2. Please try again."<< endl;
cin >> imin >> imax;
}
}
// DEFINE FUNCTION is_prime() HERE:
bool is_prime(int k)
{
for (int i=2; i<=k-1; i++)
{
if (k%i==0)
{return false;}
else
{return true;}
}
}
I know that the problem is in the function definition, specifically the for loop. Could I get a point in the right direction? Thank you in advance!