某银行初试代码题 Java找素数

今天参加某行Java暑期实习生的面试,被最后一道找素数的代码题给整懵了,我也太菜了[流下了没有技术的眼泪]。
在这里插入图片描述

文章目录

题目

找出200-300之间的素数,并打印

解题思路

首先要明白什么是素数,我确实有点记不清了。。。那么什么是素数呢?
素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。那怎么判断一个数是不是素数呢?
有三种判断条件

  • 判断条件1:只能被1和本身整除的称为素数;
  • 判断条件2:在区间(1,x/2)中找不到能整除素数x的整数;
  • 判断条件3:在区间(1,sqrt(x))中找不到能整除素数x的整数;

代码

public class FindPrimeNumber {
    //使用判断条件1
    public static int  isPrimeNumber(int n){
      for(int i = 2; i < n; i++){
          if(n % i == 0){
              return 0;
          }
      }
      return 1;
    }

    //使用判断条件2
    public static int isPrimeNumber1(int n){
        for(int i = 2; i < n / 2; i++){
            if(n % i == 0){
                return 0;
            }
        }
        return 1;
    }

    public static void main(String[] args) {
        for(int i = 200; i <= 300; i++){
            if(isPrimeNumber1(i) == 1){
                System.out.print(i + " ");
            }
        }
    }

这也太简单了叭[眼泪哗哗哗哗的往下流]

猜你喜欢

转载自blog.csdn.net/weixin_43691723/article/details/106818428