Prime Number Generator Logic

后端 未结 15 2349
旧时难觅i
旧时难觅i 2021-01-07 04:10

I am supposed to make a class PrimeNumberGenerator which has a method nextPrime that will print out all prime numbers up to a number the user input

15条回答
  •  情深已故
    2021-01-07 04:53

    I use this way in generator, it works well.

    const isPrime = (number) => {
      if (
        Number.isNaN(number) ||
        !Number.isFinite(number) ||
        number % 1 || //  check int number
        number < 2
      ) {
        return false;
      }
      let i = 2;
      const m = Math.ceil(Math.sqrt(number));
      let isPrime = true;
      while (i <= m) {
        if (number % i === 0) {
          isPrime = false;
          break;
        }
        i = i + 1;
      }
      return isPrime;
    };
    
    function* primeNumber() {
      let nextNumber = 2;
      while (true) {
        if (isPrime(nextNumber)) {
          yield nextNumber;
        }
        ++nextNumber;
      }
    }
    
    const iter = primeNumber();
    for (const n of iter) {
      if (n > 100) iter.return("end");//end loop
      console.log(n);
    }
    

    You can call next to get prime number in order.

    const iter = primeNumber();
    console.log(iter.next())
    console.log(iter.next())
    

    include thoes function to your class.

提交回复
热议问题