Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

198
Views
Javascript find prime numbers in array wihhout using a function

Prime number is a number that is divided by itself or 1 but nothing else. Im trying to create a program that will ask the user for two numbers, and then find the prime numbers in the range between them without using a function and create a new array with only the prime numbers.

The first for loop is designated to contain the numbers between the start and end. The second loop is to check each number if it divided by any number from 2 up until the number tself (except itself and one).

Then, “if statement “ that state if even one number is divided by it without remainder: that its not an prime number and I should break this loop. This is where I get stuck.

I want somehow to tell the program that if it “broke” that means it isn’t a prime number, else.. it is!

if I used function i simply could use return and that will solve it, but I want without using function.

let start = +prompt("Give me a start number")
let end = +prompt("Give me an end number")
let newArray = []
let primeArray = []

for (let i = start; i <= end; i++) {
    newArray.push(i)
}

for (num of newArray) { 
    for (let i = 2; i < num; i++) { 
        if (num % i == 0 ) {
            break
        }
    }
    if (i !== num) {
        console.log(i)
        primeArray.push(num)
    } 
}
document.write(primeArray)

This is my solution:

let start = +prompt("Give me a start number")
let end = +prompt("Give me an end number")
let primeArray = []
let isPrime = true

if (start < 2)
{
    start = 2
}

for (num = start; num <= end; num++) 
{
    isPrime = true
    for (let i = 2; i < num; i++) 
    {
        if (num % i == 0) 
        {
            isPrime = false
            break
        }   
    }  
    if (isPrime == true) 
    {
        primeArray.push(num)
    } 
}

document.write(primeArray)
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

I think I understand the problem - if break doesn't work, defining a boolean and flipping it to true would probably be a sufficient (dirty) fix for your code.

let start = +prompt("Give me a start number")
let end = +prompt("Give me an end number")
let newArray = []
let primeArray = []
let truthCheck =  true;

for (let i = start; i <= end; i++) {
    newArray.push(i)
}

for (num of newArray) { 
    for (let i = 2; i < num; i++) { 
        if (num % i == 0 ) {
            truthCheck = false;
        }
    }
    if (i !== num && truthCheck == true) {
        console.log(i)
        primeArray.push(num)
    } 
}
document.write(primeArray)
about 4 years ago · Juan Pablo Isaza Report

0

Problems:

  • The scope of i is incorrect. Because you used let inside of the loop initialization, it only exists until the bottom of the loop body. It does not exist when you are trying to check (i !== num). If you want to use it after the loop then you need to define it before the loop.
  • Your condition i !== num is inverted. That will be true only if num is not prime because you break out of the loop early when you discover a valid divisor > 2 (num % i == 0). Only if the loop completes (no divisors found) will i == num be true. Change the line to if (i == num) {.

The resulting fixed code:

let start = +prompt("Give me a start number")
let end = +prompt("Give me an end number")
let newArray = []
let primeArray = []

for (let i = start; i <= end; i++) {
    newArray.push(i)
}

for (num of newArray) {
    let i;

    for (i = 2; i < num; i++) {
        if (num % i == 0) {
            break
        }
    }

    if (i == num) {
        console.log(i)
        primeArray.push(num)
    }
}

document.write(primeArray)

Example: answering 562 and 850 will yield: [563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839]

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!