方法一:
* 方法一
* 根據質數的定義得出的方法
*/
public static void isPrimeNumber2(){
System.out.println("100以內的質數是: " + 2);
System.out.println("100以內的質數是: " + 3);
System.out.println("100以內的質數是: " + 5);
System.out.println("100以內的質數是: " + 7);
for (int i = 2 ;i < 100;i++){
if(i % 2 != 0 && i % 3 != 0 && i % 5 != 0 && i % 7 != 0 ){
System.out.println("100以內的質數是: " + i);
}
}
}
方法二:
* 方法二:
* 這個代碼用了兩層循環。外層循環列舉從2-100之間的每一個整數(作爲被除數)
* 然後在內層循環中用從2到它之間的數去除它,如果找到了一個能夠整除它的數,內層循環將立即跳出(此時j<i).
* 如果一直沒有找到能夠整除它的數,則當內層循環將2到它之間所有數都嘗試一遍之後,內層循環也跳出(此時j等於i)
* 等到內層循環跳出之後,程序接着判斷j是否大於i,如果是(上面第二種情況),
* 表明這個數是質數,於是將這個數打印出來並計算到累加中去; 如果不是(上面第一種情況),表名這個數不是質數。
*/
public static void isPrimeNumber3(){
int i,j;
for( i = 2; i < 100; i++){
for( j = 2; j < i;j++){
if (i % j == 0){
break;
}
}
if (j >= i){
System.out.println("100以內的質數是:"+i);
}
}
}
}
方法三:
public static void isPrimeNumber1(){
int [] arr = new int[1000];
int count = 0;
for (int i= 2;i < 100; i++){
boolean flag = true;
for (int j =2;j <= Math.sqrt(i);j++){
if (i % j == 0){
flag = false;
break;
}
}
if (flag ){
System.out.println("100以內的質數是: "+ i);
}
}
}
public static void isPrimeNumber4(){
boolean isFlag = true;
int count = 0;
label: for (int i = 2;i <= 100000; i++){ //遍歷100以內的自然數
for (int j = 2 ; j < Math.sqrt(i); j++){
if (i % j == 0){//若能除盡
/* isFlag = false;
break ;*/
continue label;
}
}
//能執行到此步驟都是質數
count++;
/*if(isFlag){
System.out.println("100以內的質數是:"+i);
}
//重置 isFlag
isFlag = true;*/
}
System.out.println("質數的個數是:"+count);
}