素数的概念:一个整数如果只能整除1和它本身,那么这个整数就是一个素数
方法一:素数是除去能被2整除、3整除、5整除、7整除的整数,但包含2,3,5,7
public class Sushu {
public static void main(String[]args){
String str="2 3 5 7 ";
for(int i=2;i<=100;i++){
if(i%2==0||i%3==0||i%5==0||i%7==0 ){ //;逻辑判断,筛选
continue; //继续下一次循环
} else {
str+=i+" "; //筛选出需要的素数(不包含2 3 5 7 )
}
}
System.out.println("2~100内的素数是:"+str);
}
}
方法二:通过boolean筛选来判断素数
调用方法:如果一个整数数的不能整除2到这个数开平方区间的整数,那么这个数就是一个素数
public class Sushu {
public static boolean isPrime(int num) { //定义判断素数的方法isPrime()
for(int i = 2; i <= Math.sqrt(num); i++) { //程序默认2是素数,当j=2时,循环不执行
if(num % i == 0) { //Math.sqrt(num) 对num开平方
return false;
}
}
return true;
}
public static void main(String[] args) { //主方法
for(int j = 2; j <= 100; j++) {
if(Sushu.isPrime(j)) { //调用isPrime()方法,注意调用方法的格式
System.out.println(j + " is a prime");
}
}
}
}
方法三:更常规的算法for循环
public class Demo07 {
public static void main(String[] args) {
boolean isPrint = false;
for (int k = 2; k <= 100; k++) {
isPrint = true;//--布尔类型的变量通常以is开头。
for (int l = 2; l < k; l++) {
if(k % l == 0){//能否断定k就一定是素数。
isPrint = false;
break; //跳出当前循环
}
}
if(isPrint){
System.out.println(k);
}
}
}
} 这段代码我是大写的服!
写一个程序的过程: 需求: 问题是什么,想要实现什么? (面向对象)
分析: 要实现问题的解决要分几个步骤,每步之间的关系(有点面向过程的味道)
实现: 如何通过方法实现
代码体现: 代码精炼、逻辑感强、加注释、易维护