方法一:
* 方法一
* 根据质数的定义得出的方法
*/
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);
}