java面试题——找出区间内的素数(答案及编程思路三种方式)

2024-01-02 21:50:41

前言:

学习编程还是要做大量练习呀,不能只学不练,一个题目可以从多个角度去解决,可以全方面巩固知识点。每天记录一点点,daydayup!

题目:判断101-200之间有多少个素数,并输出所有素数

思路:1,定义一个101-200的数值区间;2,从区间内取一个数;3,遍历2到该数的一半数据,看这个数是否能被整除;4,不能被整除为素数,反之不被整除便不是素数。5,输出结果

方法1:利用bootean变量,当该数可以被整除时,输出false;不能整除时输出true,最后统计数量即可

public class sushudemo {

    public static void main(String[] args) {
        System.out.println("素数合计为:"+la(101, 200));

    }
    public static int la(int start,int end){
        int count = 0;
        for (int i = start; i <=end ; i++) {

              boolean flag = true;
            for (int j = 2; j < i /2; j++) {
                if (i % j == 0){
                      flag = false;
                      break;
                }
            }
                if(flag){
                    System.out.println(i);
                    count ++;
                }
        }
        return count;
    }
}

方法2:添加标签选项(OUT),当可以被整除时,使代码跳出循环;最后记录出素数数值

public class sushudemo1 {

    public static void main(String[] args) {
        System.out.println(la(101, 200));
    }
    public static int la(int start, int end) {
        int count = 0;
        OUT:
        for (int i = start; i <= end; i++) {
            for (int j = 2; j < i / 2; j++) {
                if (i % j == 0) {
              continue OUT;
                }
            }
                System.out.println(i);
                count++;
        }
        return count;
    }
}

方法3:使用多个方法,分步骤完成;第一个方法为记录数值区间,第二个方法为看是否能被整除,可以被整除输出false,不能则输出true。

public class sushudemo2 {
    public static void main(String[] args) {
        System.out.println(la(100, 200));
    }
    public static int la (int start,int end){
        int count = 0;
        for (int i = start; i <=end ; i++) {
            if (ll(i)){
                System.out.println(i);
                count++;
            }
        }
 return count;  }
    public static boolean ll(int date){
        for (int i = 2; i <= date/2 ; i++) {
                if (date % i == 0){
                    return false;
                }
                }
      return true;  }

}

?撒花!

文章来源:https://blog.csdn.net/l822099133/article/details/135349771
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。