算法思路:将1-100的数进行标识, 从2开始求其2倍,则该数为合数,将标识置1;
则依次向后进行,最后标识为0的数,即为素数。
const int n = 100;
int isprim[n + 1] = { 0 }; //每位数进行标识,起初置0
for (int i = 2; i <= sqrt(float(n)); i++)
{
if(isprim[i]==0)
for (int j = 2*i; j < n; j+=i)
{
isprim[j] = 1;
}
}
for ( int i = 2; i <=n; i++)
{
if (isprim[i] == 0)
{
printf("%5d",i);
}
}