33,311
社区成员
发帖
与我相关
我的任务
分享
int main()
{
//向量元素值若为1,则元素序数为质数;向量元素若为0,则元素序数不是质数。
cout << "Please enter the upper limit: ";
int n,i,multiple,k;
cin >> n;
vector<int>primes;
for (i = 0; i < n + 1; ++i)
primes[i] = 1;
primes[0] = 0; //0,1都不是质数
primes[1] = 0;
for (i = 2; i < n + 1;++i)
{
if (primes[i]==1)
{
for (multiple=2;i*multiple<=sqrt(n);++multiple)
primes[i*multiple] = 0;
}
}
for (k = 2; k < n + 1;++k)
{
if (primes[k] == 1)
cout << k << endl;
}
}