我更多来自 java/php 背景,我现在正在学习 C++。我试图在 C++ 中重新创建 Eratosthenes 筛并打印出所有低于 5000 的素数。
我正在使用http://www.compileonline.com/compile_cpp_online.php编写和编译这段代码
请查看代码和错误消息:
代码:
#include <iostream>
using namespace std;
bool sieve[](int max)
{
bool primes[max];
primes[0] = false;
primes[1] = false;
for(int a = 2; a < max; a++)
{
primes[a] = true;
}
for(int i = 2; i < max; i++)
{
if(primes[i])
{
for(int j = 2*i; j < max; j+=i)
{
bool primes[j] = false;
}
}
}
return primes;
}
int main()
{
bool[] primes = sieve(5000);
for(int i = 2; i < primes.size; i++)
{
if(primes[i])
{
cout << i << endl;
}
}
}
错误信息:
$g++ main.cpp -o demo -lm -pthread -lgmpxx -lgmp -lreadline 2>&1
main.cpp:5:5: error: expected unqualified-id before '[' token
bool[] sieve(int max)
^