早上,在google reader rss上,看关于ItEye的一个HR的帖子:求100内的质数。很简单的一道题,大家都在做。
public class TestPrime {
    public static void main(String[] args) {
        // test(1000);
        test2(100);
    }
    private static void test(int i) {
        boolean isPrime = true;// 默认是质数
        if (i < 2) {
            System.out.println("求质数范围过小。。。。。。");
            return;
        }
        System.out.print("2 ,");
        for (int j = 3; j <= i; j++) {
            isPrime = true;
            
            if (j % 2 == 1) {
                // 如果是大于2的奇数
                for (int k = 3; k * k < j; k++) {
                    if (j % k == 0) {
                        isPrime = false;
                        break;
                    }
                }
                if (isPrime) {
                    System.out.print(j + " ,");
                }
            }
        }
    }
    /**
     * 这个是python代码改写过来的。
     */
    private static void test2(int i) {
        for (int j = 2; j <= i; j++) {
            int k = 2;
            boolean isPrime = true;
            while (k * k < j) {
                // can be devided by k,so begin with 2
                if (j % k == 0) {
                    isPrime = false;
                    break;
                } else {
                    k++;
                }
            }
            if (isPrime)
                System.out.print(j + " ,");
        }
    }
}