C++求100~200的素数之和

#include<iostream.h>
void main()
{
int i,k=0;
int s=0;
for(i=101;i<200;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==0)
break;
}
if(j==i)
s+=i;
}
cout<<s<<endl;
}
我想问问为什么if(j==i)
这里不明白为什么j==i 就可以s+=i;
请高手帮忙速答,这个程序是对的,但是不明白这里而已,我也知道这个程序很简单,但是呢就是不明白这里是什么意思。
大哥不是1是i
另一位答的我还是不明白???

#include<iostream.h>
void main()
{
int i,k=0;
int s=0;
for(i=101;i<200;i++)//循环判断是否为素数的数
{
for(int j=2;j<i;j++)//循环i要除的数
{
if(i%j==0) //如果整除则i非素数
break; //跳出循环;
}
if(j==i) //如果j等于i (j怎么会等于i???) 这里不明白啊
s+=i; //循环相加得到素数的和
}
cout<<s<<endl;
}

#include<iostream.h>
void main()
{
int i,k=0;
int s=0;
for(i=101;i<200;i++)
{
for(int j=2;j<i;j++)//对于从101开始的每个i都进行一次循环;
{
if(i%j==0) //如果有某个j整除i则i非素数
break; //跳出循环;
}
if(j==i) //如果j等于i说明2到i-1没有一个数可以整除i,所以i是素数
s+=i; //循环相加得到素数的和
}
cout<<s<<endl;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-29
for(i=101;i<200;i++)
{
for(int j=2;j<i;j++) //如果for正常结束j==i;
{
if(i%j==0) //这里如果成立,马上break ,这个时候j一定 j<i;i不是素数
break; //
}
if(j==i) 到这里成立。 i就是素数;
s+=i;
}
第2个回答  2008-04-28
如果结果是j==1 就可以s=s+i..
这个没有为什么啦

这个是循环中镶嵌了if语句