Code:
// This is the main project file for VC++ application project
// generated using an Application Wizard.

#include "stdafx.h"
#include <iostream>

#using <mscorlib.dll>

using namespace System;
using namespace std;

bool checkprime(int, int);

int k=3;


int _tmain()
{
       int n;
	  
       cout << "Input Number: "; cin >> n;
       
       

	   if(checkprime(n,k))
		   cout << "Yes"<<endl;
	   else 
		   cout << "no" <<endl;
	

		  

return 0;

}


bool checkprime(int nv, int kv) {
	
	
	if (nv%2 ==0)
		return false;
	
	if (nv %k ==0){
		return false;
		checkprime(nv, k+1);
	}
	else
		return true;
}
I wrote this program using recursion. I know what I did for the most part, but I am not clear on when it returns true. The program runs alright and does what its supposed to do. But I didnt set any boundary on k so I am wondering when it breaks out and returns true. If k didnt break then the program wouldnt display the correct answer. Does it break when k =nv? If so, why? Thanks for the help.