Home > Software engineering >  Javascript loops opdracht
Javascript loops opdracht

Time:04-28

Wie kan mij helpen bij de volgende vraag Ik geraak er maar niet uit… Javascript-loops.

Schrijf een script waarbij je één getal ingeeft via een prompt bij het inladen van de pagina. In de console toon je het eerstvolgende cijfer dat een priemgetal is. Voorbeeld: als ik ingeef '20' dan krijg ik in de console '23' (want 23 is een priemgetal en is hoger dan 20).

alvast bedankt voor de hulp.

CodePudding user response:

Gebruik een while-lus. Als het getal geen priemgetal is, blijf het getal optellen totdat het een priemgetal is. Dan console.log het nummer.

const isPrime = num => {
    for(let i = 2, s = Math.sqrt(num); i <= s; i  )
        if(num % i === 0) return false; 
    return num > 1;
}

let input = prompt("Voer nummer in")
while (!isPrime(input)) {
  input  
}

alert(input)
console.log(input)

CodePudding user response:

// Function that returns true if n is prime else returns false 

function isPrime(n) { 

    // Corner cases 
    if (n <= 1) return false; 
    if (n <= 3) return true; 

    // This is checked so that we can skip middle five numbers in below loop 
    if (n%2 == 0 || n%3 == 0) return false; 

    for (let i=5; i*i<=n; i=i 6) {
        if (n%i == 0 || n%(i 2) == 0){
            return false;
        }
    }
    return true; 
} 
 
// Function to return the smallest prime number greater than N 

function nextPrime(N) { 
 
    // Base case 
    if (N <= 1) {
        return 2;
    }

    let prime = N; 
    let found = false; 

    // Loop continuously until isPrime returns true for a number greater than n 
    while (!found) {
        prime  ; 

        if (isPrime(prime)) {
            found = true;
        }
    }
    return prime; 
} 
 
// Driver code 
 

    const num = prompt()
    console.log(nextPrime(num))
  • Related