新博第一篇,思考的重要性与求质数算法

  微博开通后的第一篇文章,哈哈,我终于也有博客了~

  废话不多说,直接上感悟。

  前两天在等待博客的申请中,浏览博问时看到了一个问题,引发了万千思绪啊,在这里记录一下,不是为了记录算法,而是为了提醒小伙伴们:虽然我们的最终目的是实现代码,但是思考的过程也同样很重要!

  就像我们开发组里老大说的那样:一个好的开发只有30%的时间实在写,而其余70%的时间都是在想,不要仅仅只做一个coder。

  下面我们开始思考:

  问题是这样的:求一个给定区间内的质数。

    1、什么是质数?只能被1跟自己整除的数,也叫素数。

    2、通过两层循环来实现。第一层循环用来循环需要做判断的数,第二层循环,则进行对该数是否为质数进行判断。

    3、同时我们需要考虑到,只要第二次循环中判断出一次不是质数,那么该数就肯定不会是质数了。

    4、于是我们可以考虑在每次外层循环开始时,使用一个布尔值变量来记录该数是否为质数,在内层循环中,只要判断一次非质数,那么我们就直接记录为非质数

    5、最后,我们在内层循环全部结束后进行一次if判断该数最终是否为质数。

    6、上代码:

 

  javascript:

function doIt(min,max) {
  //声明一个布尔值变量:记录否为是质数。
  var isTrue
  for(var i = min; i <= max; i++) {
    //每次循环开始,重置一次是否为质数。
    isTrue = true;
    for(var j = 2; j < i; j++){
      if(i % j == 0){
        //除于==0说明有能被整除的数,那么不是质数,直接将该数记录为非质数。
        isTrue = false;
        break;
      }
    }
    //内层循环结束后,判断最终结果,到底是否为质数并打印出来。
    if(isTrue){
      console.log(i);
    }
  }
}
doIt(101,200);

  typescript:

class getPrimeNumber {
  private isTrue: boolean;
  private primeNumberList: number[] = [];
  getPrimeNumber(min: number, max: number): number[] {
    for (let i = min; i <= max ; i ++) {
      this.isTrue = true;
      for (let j = 2; j < i; j ++) {
        if(i % j == 0) {
          this.isTrue = false;
          break;
        }
      }
      if(this.isTrue){
        this.primeNumberList.push(i);
      }
    }
    return this.primeNumberList
  }
}

let primeNumberList = new getPrimeNumber().getPrimeNumber(101, 200);
console.log(primeNumberList);

  java:

public class GetPrimeNumber {
  private boolean isTrue;
  public void getPrimeNumber(int min, int max) {
    for(int i = min; i <= max; i ++){
      isTrue = true;
      for(int j = 2; j < i; j ++){
        if(i % j == 0){
          isTrue = false;
          break;
        }
      }
      if(isTrue){
        System.out.println(i);
      }
    }
  }
                
  public static void main(String []args) {
    GetPrimeNumber gpn = new GetPrimeNumber();
    gpn.getPrimeNumber(101, 200);
  }
}

  思路真的很重要,虽然这对于我们来说只是一个简单的算法。
  欢迎大家来吐槽,或者发表您的见解^o^。

原文地址:https://www.cnblogs.com/guofan/p/6530014.html