java学习日记-基础-列出2~100内的素数

素数的概念:一个整数如果只能整除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);
            }
        }
    }
}

这段代码我是大写的服!

写一个程序的过程:   需求:       问题是什么,想要实现什么?  (面向对象)

          分析:       要实现问题的解决要分几个步骤,每步之间的关系(有点面向过程的味道)

          实现:       如何通过方法实现

          代码体现:  代码精炼、逻辑感强、加注释、易维护

原文地址:https://www.cnblogs.com/slowcity/p/6819717.html