This program runs but no matter what I enter it outputs \"Try AgainTry AgainPrim
ID: 3660134 • Letter: T
Question
This program runs but no matter what I enter it outputs "Try AgainTry AgainPrimes:" Then stops working. The instructions are below the code.
Code:
#include <iostream>
#include <cmath>
using namespace std;
// FUNCTION PROTOTYPE FOR read_range
void read_range(int &min_val, int &max_val);
// FUNCTION PROTOTYPE FOR is_prime
double is_prime(int a);
// 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 &min_val, int &max_val)
{
cout << "Enter the values: ";
cin >> min_val >> max_val;
if (min_val || max_val < 2)
{
cout << "Try again";
if (min_val > max_val);
{
cout << "Try again";
}
}
else (min_val < max_val);
}
// DEFINE FUNCTION is_prime() HERE:
double is_prime(int a)
{
for (int b = 0; b <= a; b++)
{
if ( a % b == 0)
{
cout << "True";
}
else
{
cout << "False";
}
}
}
Explanation / Answer
#include<stdio.h>
#include <iostream>
#include <cmath>
#include<math.h>
using namespace std;
// FUNCTION PROTOTYPE FOR read_range
void read_range(int &min_val, int &max_val);
// FUNCTION PROTOTYPE FOR is_prime
bool is_prime(int a);//return value shold be bool
// 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 numberscout<<imin<<imax;
cout << "Primes:";
for (int k = imin; k <= imax; k++) {
if (is_prime(k))
{
cout << " " << k;
}
}
cout << endl;
system("pause");
return 0;
}
// DEFINE FUNCTION read_range() HERE:
void read_range(int &min_val, int &max_val)
{
cout << "Enter the values: ";
cin >> min_val >> max_val;
if (min_val<2 || max_val<2)
{
cout << "Try again";
if (min_val > max_val);
{
cout << "Try again";
}
}
else (min_val < max_val);
}
// DEFINE FUNCTION is_prime() HERE:
bool is_prime(int num)
{ if(num == 0) return true;
num = abs(num);
for(int i = 2; i <= sqrt(num); i++)
if(num % i == 0) return false;
return true; }
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.