日期:2014-05-20  浏览次数:20758 次

【求助】判断101-200 之间有多少个素数,并输出所有素数
本帖最后由 marhoury 于 2013-07-23 14:44:28 编辑
package Test;

public class T1 {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
int m = 0;
boolean flag = false;
for(int i = 101; i <= 200; i++)
{
for(int j = 2; j <= Math.sqrt(i); j++)
{
if(i % j == 0)
{
flag = true;
break;
}
}
if(!flag)
{
System.out.print(i + " ");
m++;
}
}
System.out.println("总共" + m + "个素数。");
}
}


第一次写java程序,大神帮忙看看,为什么不对!谢谢了。

------解决方案--------------------
boolean flag = false; 往下一行
你的flag在101之后就一直是true了,因为每一次新数的循环开始,没有一个重置flag的机制,而你的代码假设每一个循环开始flag都是false