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))