//求100---200之间的所有素数
public class Test217
{
public static void main(String args[])
{
int n=0;
outer:for(int i=101;i<200;i+=2)
{
int k=15;
for(int j=2;j<=k;j++)
{
if (i%j==0)
continue outer ;
}
System.out.print(" "+i);
n++;
if (n<10)
continue;
System.out.println();
n=0;
}
System.out .println();
}
}
输出结果:
  
请问这里的j,k是什么用意呀??

解决方案 »

  1.   

    给你个好理解的!!
    public class PrimeTest{
        // 判断一个整数num是否是素数
        public static boolean checkPrime(int num) {
            if (num <= 0)// 负数和零不是素数
            {
                return false;
            }
            if (num == 1 || num == 2)// 1和2是素数
            {
                return true;
            }
            for (int i = 2; i < Math.sqrt(num) + 1; i++) {
                if (num % i == 0) {
                    return false;
                }
            }
            return true;
        }    // 获取start——end间素数的个数,并打印出素数
        public static int getPrimeNum(int start, int end) {
            int sum = 0;
            for (int i = start; i <= end; i++) {
                if (checkPrime(i) == true)// 是素数
                {
                    System.out.print(i + " ");
                    sum++;
                }
            }
            return sum;
        }    public static void main(String args[]) {
            int start = 100;
            int end = 200;
            int sum = getPrimeNum(start, end);
            System.out.println("\n" + start + "~" + end + "间共有" + sum + "个素数!");
        }
    }
      

  2.   

    i是被判断的数,j是用i去除的数,如果j==i之前都出现可以整除i的数,此i的一次循环结束,则i被判断为非素数.如果j==i之前都没有出现可以整除i的数,次i的一次循环结束,则i被判断为素数
      

  3.   

    刚学到 帮你解释一下,判断素数方法,其中之一就是定义Math.aqrt(n)求出循环的上限,14*14=196;15*15=225;现在要判断的上限为 200,明显<225,所以取整数15至于j么,真的没看懂吗?不解释了