首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求问C++程序解决思路

2012-07-04 
求问C++程序void main(){int a[101],i,jfor(i1i100i++)a[i]1for(i2i50i++)if(a[i]1){j2wh

求问C++程序
void main(){
int a[101],i,j;
for(i=1;i<=100;i++)
a[i]=1;
for(i=2;i<=50;i++)
if(a[i]=1)
{j=2;
while(i*j<=100)
{a[j]=0;
j++;}}
for(i=1;i<=100;i++)
if(a[i]==1)
cout<<i;}

哪位能指教一下这个程序(前面头文件什么的省略了……)是怎么运行的????这个程序是要筛选1---100之间的素数
谢谢了!

[解决办法]
第一个for初始化a[n] = 1;设置标志1表示为素数

第二个for将合数j对应的a[j]设为0

第三个for输出素数

重点是第二个for,i从2到50,作为因子

j代表另一个因子,所有i*j都是合数
所以应改为
while(i*j<=100)
{
a[i*j]=0; <-- 而不是a[j] = 0
j++;
}

热点排行