Так что этот код дает нам простые числа. Но это работает только в том случае, если int a[1499]
является глобальной переменной, потому что, если массив является глобальным, он автоматически инициализирует все члены 0
. Как я могу изменить условие for
-петля, чтобы я мог сделать a[1499]
локальной переменной и переместить ее в функцию main
?
#include <iostream>
using namespace std;
int a[1499];
int main()
{
int PrimeCounter = 0;
int PrimeNumberNeeded = 1500;
bool Isprime;
int TestNumber = 2;
a[0]=2;
while (PrimeCounter != PrimeNumberNeeded)
{
Isprime = true;
for(int x=0; a[x]!= 0; x++)
{
if(TestNumber%a[x] == 0)
{
Isprime = false;
break;
}
}
if (Isprime)
{
a[PrimeCounter] = TestNumber;
PrimeCounter++;
}
TestNumber++;
}
// end of while
if (PrimeCounter == PrimeNumberNeeded)
{
cout << "Prime counter is: " << PrimeCounter << "\nTest number is: "<< a[1499]<< endl;
}
return 0;
}