Using For loop to determine if a number is prime

4 visualizzazioni (ultimi 30 giorni)
Vy Do
Vy Do il 12 Set 2020
Modificato: Matt J il 13 Set 2020
Could someone help me with this problem: "Use a for loop combined with an if statement to whether 3257861 is prime."
My professor also gave the hint but it just made me more confused: "To determine if a number n is prime, you have to check every number up to and including sqrt(n) and see whether that number is a divisor of n. Also, you will need to create a variable that tells you whether you have found a divisor of 3257861 (in which case 3257861 is not prime). This variable should start at 0, and if you find a divisor, change it to 1."

Risposte (1)

Matt J
Matt J il 12 Set 2020
Modificato: Matt J il 13 Set 2020
To determine if a number n is prime, you have to check every number up to and including sqrt(n) and see whether that number is a divisor of n.
The reason this is true is because suppose a number n is not prime. There therefore exists two integer divisors a>=b>1 such that n=a*b. Then,
n=a*b>=b^2
and therefore b<=sqrt(n). Therefore, if n is not prime, you should have found one of its divisors if you checked all b from 2 to floor(sqrt(n)).
  2 Commenti
Vy Do
Vy Do il 13 Set 2020
so how do you write the code then?
Matt J
Matt J il 13 Set 2020
As you have been instructed, with a for-loop and an if statement. You can use rem() or mod() to check whether a number b is a divisor of n.

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by