它是埃拉托色尼筛法的有效代码吗?
Is it a valid code for Sieve of Eratosthenes?
我最近学习了埃拉托色尼筛法来寻找素数。在了解了方法后,我为此编写了这段代码。
埃拉托色尼筛法是否是有效的 C++ 代码?
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
bool array[n];
for(int i=2;i<=n;i++)
{
array[i]=true;
}
for(int i=2;i<=n/2;i++)
{
for(int j=i+1;j<=n;j++)
{
if(array[j]==true)
{
if(j%i==0)
array[j]=false;
}
}
}
for(int k=2;k<=n;k++)
{
if(array[k]==true)
cout<<k<<" ";
}
}
感谢帮助!
没有。这不是埃拉托色尼筛法。 Eratosthenes 筛法中没有除法(j % i == 0
)。
我最近学习了埃拉托色尼筛法来寻找素数。在了解了方法后,我为此编写了这段代码。
埃拉托色尼筛法是否是有效的 C++ 代码?
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
bool array[n];
for(int i=2;i<=n;i++)
{
array[i]=true;
}
for(int i=2;i<=n/2;i++)
{
for(int j=i+1;j<=n;j++)
{
if(array[j]==true)
{
if(j%i==0)
array[j]=false;
}
}
}
for(int k=2;k<=n;k++)
{
if(array[k]==true)
cout<<k<<" ";
}
}
感谢帮助!
没有。这不是埃拉托色尼筛法。 Eratosthenes 筛法中没有除法(j % i == 0
)。