Я пытаюсь сделать простое сито с векторами:Создания Сита с векторами
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
vector<int> myVector;
void vec_sieve()
{
myVector.push_back(0);
myVector.push_back(0);
unsigned int sz = pow(2,31);
for(unsigned int i=2;i<sz;i++)
{
myVector.push_back(1);
}
int len = sqrt(sz);
for(unsigned int i=2;i<=len;i++)
{
if(myVector[i] == 1)
{
for(unsigned int j=2;i*j<=sz;j++)
{
myVector[i*j] = 0;
}
}
}
}
int main()
{
vec_sieve();
int n;
cin>>n;
unsigned int input;
for(int i=0;i<n;i++)
{
cin>>input;
if(myVector[input] == 1)
{
cout<<"Prime"<<endl;
}
else
{
cout<<"Not Prime"<<endl;
}
}
return 0;
}
Я новичок в вектор и пытаюсь создать векторы простых чисел с seive, но почему-то я получаю Bad_Alloc
Кто-нибудь может быть конкретным в отношении этого плохого распределения?
Заранее спасибо
пожалуйста проследуйте [URL] (http://stackoverflow.com/help) будет полезно поднять качество вашего контента –