说明:除了1和它本身以外,不能被其他正整数整除,就叫素数
方法1:
package ZY;public class Test7法1 {//目标;找素数,方法1public static void main(String[] args) {int num1 = 101;int num2 = 200;int count = find(num1, num2);System.out.println("一共有"+count+"个素数");}//定义一个找素数的方法public static int find(int num1 ,int num2) {int count = 0;//统计一共多少个素数的变量//遍历数字,从num1开始到num2结束for (int i =num1;i<=num2;i++){// 信号位思想boolean flag = true;// 假设的意思:默认认为当前i记住的数据是素数。//判断每个数字是不是素数//判断规则是:从2开始遍历到该数的一半的数据,看是否有数据可以整除它,有则不是素数,没有则是素数;for (int j = 2;j<=i/2;j++){if (i%j==0){//要是这个数字能够被j中的数字整除则不是素数flag = false;//不为素数不被记住break;//并且结束此次内部循环}}if (flag){//若为素数,flag=true并打印System.out.println(i);count++;//统计多少个素数}}return count;}
}
法2
package ZY;public class Test7法2 {//目标;找素数,利用指定标签public static void main(String[] args) {int num1 = 101;int num2 = 200;int count = find(num1, num2);System.out.println("一共有"+count+"个素数");}//定义一个找素数的方法public static int find(int num1 ,int num2) {int count = 0;//统计一共多少个素数的变量//遍历数字,从num1开始到num2结束OUT: // 为外部循环指定标签OUT可以自己指定for (int i =num1;i<=num2;i++){//判断每个数字是不是素数//判断规则是:从2开始遍历到该数的一半的数据,看是否有数据可以整除它,有则不是素数,没有则是素数;for (int j = 2;j<=i/2;j++){if (i%j==0){//要是这个数字能够被j中的数字整除则不是素数//进入这个地方的i就不是素数continue OUT;//结束外部循环的当次执行!}}System.out.println(i);count++;//统计多少个素数}return count;}
}
法3:
package ZY;public class Test7法3 {//目标;找素数,方法3利用多方法定义public static void main(String[] args) {int count = 0;//定义计数变量for (int i = 101; i <= 200; i++) {//从101到200数字进行遍历//定义到方法中去进行判断if (Y(i)){//因为定义的是布尔类型,当返回的是true的时候执行一下代码System.out.println(i);count++;}}System.out.println("素数个数是"+count);}public static boolean Y(int n) {//遍历判断判断规则是:从2开始遍历到该数的一半的数据,看是否有数据可以整除它,有则不是素数,没有则是素数;for (int i = 2; i <= n/2; i++) {if (n % i == 0) {return false;//n%i==0故不为素数返回false}}return true;//除了if判断的会直接结束外,不满足if的都是素数}
}