首先是素數的定義:
素數定義爲在大於1的自然數中,除了1和它本身以外不再有其他因數。【百度百科】
特殊點的:1既不是素數也不是合數,2是素數。
兩種方法求素數:
第一種 【常用】
public class work02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int add = 0;//用來記錄素數和
//尋找素數
for(int i = 2; i<=100; i++) {
boolean flag = true; //初始默認是素數
for(int j = 2; j < i ;j++) {
if(i%j == 0) {
flag = false;//不是素數
break;
}
}
if(flag) {
add += i;
}
}
System.out.println(add);
}
}
第二種 【節約時間】
和第一種差別就在二重循環的判斷條件上,注意此處是用<=
只判斷到數字的開方的位置
public class work02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int add = 0;//用來記錄素數和
//尋找素數
for(int i = 2; i<=100; i++) {
boolean flag = true;
for(int j = 2; j<= (int)Math.sqrt( i ) ;j++) {
if(i%j == 0) {
flag = false;//不是素數
break;
}
}
if(flag) {
add += i;
}
}
System.out.println(add);
}
}
最後結果:1060