int m,d;
cin>>m>>d;
bool aa[m+1];
aa[2]=true;
for(int i = 3;i <= m;i++)
{
if(i%2)
aa[i]=true;
else
aa[i]=false;
}
for(int i =3;i <= sqrt(m);i+=2)
{
if(aa[i])
{
for(int j = i+i;j <= m;j+=i)
aa[j]=false;
}
}
<p style="color:rgb(51, 51, 51);">原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质<span style="color: rgb(0, 128, 128); font-family: Arial, Helvetica, sans-serif;">数的倍数筛掉。</span></p>