0

how to find the amount of prime numbers in a range of numbers between 1 and n from this code . and not just the numbers itself ?

  const primeNumberFromOneToN = (n)=>{ 

  let  primes =0;
  for (let i = 1; i <= n; i++) {
  let flag = 0;



 for (let j = 2; j < i; j++) {
    if (i % j == 0) {
        flag = 1;
        break;
    }}

if (i > 1 && flag == 0) {
     primes++;
   }

   return primes;

}
}
  
    
amiro
  • 1
  • 1

2 Answers2

0

Simply do this:

  // take input from the user
  const lowerNumber = parseInt(prompt('Enter lower number: '));
  const higherNumber = parseInt(prompt('Enter higher number: '));

   console.log(`The prime numbers between ${lowerNumber} and ${higherNumber} are:`);


    for (let i = lowerNumber; i <= higherNumber; i++) {
    let flag = 0;

    
for (let j = 2; j < i; j++) {
    if (i % j == 0) {
        flag = 1;
        break;
       }
     }

    
    if (i > 1 && flag == 0) {
      console.count("prime numbers found"); // change is here
   }
 }

OR the second way:

  // take input from the user
  const lowerNumber = parseInt(prompt('Enter lower number: '));
  const higherNumber = parseInt(prompt('Enter higher number: '));
  let primes = 0;

   console.log(`The prime numbers between ${lowerNumber} and ${higherNumber} are:`);


    for (let i = lowerNumber; i <= higherNumber; i++) {
    let flag = 0;

    
for (let j = 2; j < i; j++) {
    if (i % j == 0) {
        flag = 1;
        break;
       }
     }

    
    if (i > 1 && flag == 0) {
      primes++;
   }
 }

// here you can show the number
console.log(primes);
-1

// take input from the user
const lowerNumber = parseInt(prompt('Enter lower number: '));
const higherNumber = parseInt(prompt('Enter higher number: '));

console.log(`The prime numbers between ${lowerNumber} and ${higherNumber} are:`);

/*
* Gets the list of primes using sieve of Eratosthenes algorithm
*/
const getPrimes = (list, index) => {
  if (index >= list.length) {
    return list;
  }

  const number = list[index];
  let newList = list.slice(index + 1).filter(i => i % number !== 0);
  newList = list.slice(0, index + 1).concat(newList);
  return getPrimes(newList, index + 1);
}

/*
 * Function creates the range of all the numbers
 */
const createRange = (num) => {
  return [...Array(num + 1).keys()].filter(i => i > 1);
}

/*
 * Filters the result which is greater than or equal to lower limit
 */
const filterResult = (primes, lower) => {
  return primes.filter(i => i >= lower);
}

const allNumbers = createRange(higherNumber);
const primes = getPrimes(allNumbers, 0);
console.log(filterResult(primes, lowerNumber));
Sumit Surana
  • 1,554
  • 2
  • 14
  • 28