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