求解释《编程珠玑(续)》第一章习题代码,该怎么处理

求解释《编程珠玑(续)》第一章习题代码#include iostreamusing namespace stdint main(){int i,p,nchar

求解释《编程珠玑(续)》第一章习题代码
#include <iostream>;
using namespace std;
int main()
{
int i,p,n;
char x[100002];
n=100000;
for (i = 1; i <= n; i++)
x[i] = 1;
x[1] = 0; x[n+1] = 1;
p = 2;
while (p <= n)
{
printf("%d\n", p);
for (i = 2*p; i <= n; i = i+p)
x[i]=0;
do
p++;
while (x[p] == 0);
}
return 0;
}

[解决办法]
解释啥?代码功能?那里没看懂?