Find n prime numbers

#include <iostream>
using namespace std;

void getPrime(int);

int main()
{
int n;

cout << "Enter a prime number and we'll tell you that number of prime numbers beginning from 2: ";
cin >> n;
cout << endl;

getPrime(n);

return 0;
}

// Here's my void function
void getPrime(int number)
{
// This loops outputs the amount of times I had n as
for (int i = 0; i < number; i++)
{

for (int j = 2; j <= (j + 2) / 2; j++)
{
int remainder;
// To just output 2 since it's
if (j == 2)
{
cout << j;
j++;
break;
}

if (j % i != 0)
{
cout << j;
j++;
break;
}
}
}
}
Last edited on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <vector>
#include <iomanip>

// return true if number is a prime number
// smaller_primes: the list of prime numbers smaller than this number 
// vector: https://cal-linux.com/tutorials/vectors.html
bool is_prime( int number, const std::vector<int>& smaller_primes )
{
    // n is prime if it is not divisible by any smaller prime number
    // range based loop: http://www.stroustrup.com/C++11FAQ.html#for
    // (note: dividing by prime numbers up to the square root of n is sufficient)
    for( int p : smaller_primes ) if( number%p == 0 ) return false ;

    return true ;
}

// return a vector containing the first n prime numbers
// vector: https://cal-linux.com/tutorials/vectors.html
std::vector<int> first_n_primes( std::size_t nprimes )
{
    std::vector<int> prime_numbers_list( 1, 2 ) ; // initially just the one prime number 2

    // for each odd number starting with 3, till n primes have been found
    // (we know that even numbers greater than 2 are not prime)
    for( int number = 3 ; prime_numbers_list.size() < nprimes ; number += 2 )
    {
        // add it to the list of prime numbers if it is a prime number
        if( is_prime( number, prime_numbers_list ) ) prime_numbers_list.push_back(number) ;
    }

    return prime_numbers_list ;
}

// print the first n prime numbers
void print_first_n_primes( std::size_t nprimes )
{
    const auto prime_number_list = first_n_primes(nprimes) ;
    for( std::size_t i = 0 ; i < nprimes ; ++i )
    {
        std::cout << std::setw(6) << prime_number_list[i] ;
        if( i%10 == 9 ) std::cout << '\n' ; // a new line after every 10 numbers
    }
    std::cout << '\n' ;
}

int main()
{
    print_first_n_primes(1000) ; // print the first 1000 prime numbers
}

http://coliru.stacked-crooked.com/a/ace4f23f3c5a021a
Use code tags, [.code] [./code] - Remove the periods and put your code between those so it's easier on the eyes.

You can put everything in a for loop like this:

1
2
3
4
5
6
cin >> n;

for(int i = n; i > 0; i--)
{
     //Insert Prime# Loop
}


That will loop through the code you want to use for printing out prime numbers.

Or, if that doesn't go well with your code when you finish it, you can have a terminating if statement like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cin >> n;

for (int i = 0; i < number; i++)
{
     for (int j = 2; j <= n / 2; ++i)
     {
          //Whatever Code You End Up Writing
     }
     //Whatever Code You End Up Writing
     
     n--;
     if(n == 0)
         break;
}
Last edited on
Topic archived. No new replies allowed.