Solution Review 2: Check for Prime Number
This lesson provides a detailed review of the solution to the challenge in the previous lesson
We'll cover the following...
#include <iostream>using namespace std;bool isPrime(int n, int i){// first base caseif (n<2){return 0;}// second base caseif(i==1){return 1;}// third base caseif (n%i==0){return 0;}// recursive caseelse{isPrime(n,i-1);}}int main() {int input= 13;bool result= isPrime(input,input/2);// prints if number is primeif (result==1){cout<<input<<" is a prime number.";}//prints if number is not primeelse{cout<<input<<" is a not a prime number.";}}
Understanding the Code
In the code above, the function isPrime
is a recursive function as it makes a recursive call in the function body. Below is an explanation of the above code:
Driver Function
-
In the
main()
code, we have defined an integer variable, namedinput
, and boolean variable, namedresult
. -
result
stores the output of theisPrime
function. -
The first parameter in the
isPrime
function is the number to be tested, namedinput
, and the second parameter,input/2
, is half of the number to be tested. -
lines 31-34 and lines 36-39 prints the type, prime or not prime, of the number based on the value of
result
.
Recursive Function
-
The return type of this function is
bool
since we want to check if the number is prime or not and it takes the two integers,n
andi
, as input parameters. -
n
is the number to be tested andi
is the iterator and has the initial value ofn/2
when the function is called in the main code. -
i
has the initial value of ...