需求:判断101-200之间有多少个素数,并输出所有素数 素数:除了1和它本身外,不能被其他正整数整除
第一种
public class findThePrimeNumber1 {
public static void main(String[] args) {
find(101,200);
}
// 从2开始到该数得一半,看是否有数据可以整除他
public static void find(int a,int b){
int number=0;
// 循环101-200
for(int i=a;i<=b;i++){
// 信号位思想
boolean flag = true; //默认当前的数是素数
// 循环 2-该数的一半
for(int j=2;j<=(i/2);j++){
// 当前的i不是素数
if(i%j==0){
flag = false;
break;
}
}
if(flag==true){
number=number+1;
System.out.println(i);
}
}
System.out.println(a+"-"+b+"共有"+number+"个素数");
}
}
第二种
public class findThePrimeNumber2 {
public static void main(String[] args) {
find(101,200);
}
// 从2开始到该数得一半,看是否有数据可以整除他
public static void find(int a,int b){
int number=0;
OUT://为外部循坏指定标签
for(int i=a;i<=b;i++){
for(int j=2;j<=(i/2);j++){
if(i%j==0){
continue OUT;
}
}
number++;
System.out.println(i);
}
System.out.println(a+"-"+b+"共有"+number+"个素数");
}
}
第三种
public class findThePrimeNumber3 {
public static void main(String[] args) {
int number=0;
for(int i=101;i<=200;i++){
boolean flag=check(i);
if(flag==true){
System.out.println(i);
number++;
}
}
System.out.println("101-200之间共有"+number+"个素数");
}
public static boolean check(int data){
for(int i=2;i<=(data/2);i++){
if(data%i==0){
return false;
}
}
return true;
}
}