郁闷 我知道肯定是我不对,但是那儿想错了?计算素数问题!
时间:2010-11-22 来源:lovechenxiao
int count = 0;//计算个数
StringBuilder s = new StringBuilder();
for (int i = 1; i <= 100; i++)
{
bool isok = true;
for (int j = 2; j < i / 2 + 1; j++)//判断i能否被2-i/2的数整除
{
if (i % j== 0)//说明不是素数
{
isok = false;
break;
}
}
if (isok)
{
count++;
s.AppendFormat("{0},",i);
}
}
TextBox2.Text = "一共有" + count + "个素数,分别是:" +s.ToString();
结果正确,可是你过来的思想写,如下:
int count = 0;//计算个数
StringBuilder s = new StringBuilder();
for (int i = 1; i <= 100; i++)
{
//bool isok = true;
for (int j = 2; j < i / 2 + 1; j++)//判断i能否被2-i/2的数整除
{
if (i % j!= 0)//说明不是素数
{
//isok = false;
count++;
s.AppendFormat("{0},",i);
// break;
}
}
}
TextBox2.Text = "一共有" + count + "个素数,分别是:" +s.ToString();
那就不对了呢,1-100之间竟出现了2000多个素数明显不对,但是逻辑上看也没啥错误啊,还有那个break,取得break,就2000多个,加上就100多个,也不对呀,哪位大侠给解析一下撒?