# C++ Program For Prime Number Between 1 to N

C++ Program For Prime Number Between 1 to N | A natural number which has only two factors ( 1 and itself ) is called a prime number. For example, 5 is a prime number because it has only two factors 1 and 5. Similarly, 9 is not a prime number because it has more than 2 factors that are 1,3, and 9.

To develop a C++ program to check prime number; first, you should know how to find out all factors of a number. If any number has more than 2 factors then only, it is a prime number. All negative numbers, 0 and 1 are not the prime numbers.

``````#include<iostream>
using namespace std;
int main()
{
// declare variables
int m, n, count;

// take input
cout << "Enter min range: ";
cin >> m;
cout << "Enter max range: ";
cin >> n;

// don't check for -ve numbers
if(m <= 1) m = 1;

// display result
cout << "Prime numbers between "
<< m << " to " << n
<< " are: " << endl;

for(int i=m; i <= n; i++)
{
count = 0;
// check for prime
for (int j=2; j <= i/2; j++)
{
if (i % j == 0)
{
count++;
break;
}
}

// display result
if (count == 0)
cout << i << " ";
}

return 0;
}``````

Output:-

Enter min range: 1
Enter max range: 50
Prime numbers between 1 to 50 are:
1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

## Optimized Prime Number Program in C++

In the previous post, C++ program to check prime number we had written a optimized program. Using that program we can develop a C++ program for prime number between 1 to N.

``````#include<iostream>
#include<math.h>
using namespace std;
int isPrime(int number) ;
int main()
{
// declare variable
int m, n;
int prime;

// take input
cout << "Enter min range: ";
cin >> m;
cout << "Enter max range: ";
cin >> n;

// display result
cout << "Prime numbers between "
<< m << " to " << n
<< " are: " << endl;

// loop to repeat the process
for(int i=m; i<=n; i++)
{
// check prime
if(isPrime(i) != 0)
cout << i << " ";
}

return 0;
}

int isPrime(int number)
{

// negative numbers, 0 and 1 are
// not a prime number
if( number <= 1 ) return 0;

// 2 and 3 are prime numbers
if( number <= 3 ) return 1;

// numbers divisible by 2 and 3
// are not prime number
if(number%2==0 || number%3==0)
return 0;

// logic for remaining numbers
for(int i=5; i <= sqrt(number); i=i+6) {

// 6k+1 => number%i
// 6k-1 => number % (i+2)
if(number%i == 0 || number%(i+2) == 0)
return 0;
}

// if all above conditions are not satisfied
return 1;
}``````

Output:-

Enter min range: 1
Enter max range: 100
Prime numbers between 1 to 100 are:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or you find anything incorrect? Let us know in the comments. Thank you!