早上,在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 + " ,");
}
}
}