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