Prime Number Using Sqrt

19.08.2019

To test whether a number is prime or not, why do we have to test whether it is divisible only up to the square root of that number?

A-B-B

Calculate Square Root Without Using Sqrt in C First one, we have to know how to calculate square root without using a function. For calculate square root of a number, we will use The Babylonian Method for Computing Square Roots Calculate Square Root without Math.Sqrt Method In C# Console (Only int type).

25.8k7 gold badges71 silver badges74 bronze badges
PanPan
2,0575 gold badges20 silver badges26 bronze badges

13 Answers

If a number n is not a prime, it can be factored into two factors a and b:

If both a and b were greater than the square root of n, then a * b would be greater than n. So at least one of those factors must be less than or equal to the square root of n, and if we can't find any factors less than or equal to the square root, n must be prime.

Sven MarnachSven Marnach
373k84 gold badges765 silver badges709 bronze badges

Let's say m = sqrt(n) then m × m = n. Now if n is not a prime then n can be written as n = a × b, so m × m = a × b. Notice that m is a real number whereas n, a and b are natural numbers.

Now there can be 3 cases:

  1. a > m ⇒ b < m
  2. a = m ⇒ b = m
  3. a < m ⇒ b > m

In all 3 cases, min(a, b) ≤ m. Hence if we search till m, we are bound to find at least one factor of n, which is enough to show that n is not prime.

Will NessUsing
48.4k4 gold badges71 silver badges132 bronze badges
BiGYaNBiGYaN
5,1913 gold badges21 silver badges38 bronze badges

Because if a factor is greater than the square root of n, the other factor that would multiply with it to equal n is necessarily less than the square root of n.

patrospatros
6,4702 gold badges21 silver badges36 bronze badges

A more intuitive explanation would be :-

The square root of 100 is 10. Let's say a x b = 100, for various pairs of a and b.

If a b, then they are equal, and are the square root of 100, exactly. Which is 10.

If one of them is less than 10, the other has to be greater. For example, 5 x 20 100. One is greater than 10, the other is less than 10.

Thinking about a x b, if one of them goes down, the other must get bigger to compensate, so the product stays at 100. They pivot around the square root.

The square root of 101 is about 10.049875621. So if you're testing the number 101 for primality, you only need to try the integers up through 10, including 10. But 8, 9, and 10 are not themselves prime, so you only have to test up through 7, which is prime.

Because if there's a pair of factors with one of the numbers bigger than 10, the other of the pair has to be less than 10. If the smaller one doesn't exist, there is no matching larger factor of 101.

If you're testing 121, the square root is 11. You have to test the prime integers 1 through 11 (inclusive) to see if it goes in evenly. 11 goes in 11 times, so 121 is not prime. If you had stopped at 10, and not tested 11, you would have missed 11.

You have to test every prime integer greater than 2, but less than or equal to the square root, assuming you are only testing odd numbers.

`

Archit GargArchit Garg

Suppose n is not a prime number (greater than 1). So there are numbers a and b such that

Prime Number Using Sqrt 12

By multiplying the relation a<=b by a and b we get:

Therefore: (note that n=ab)

Hence: (Note that a and b are positive)

So if a number (greater than 1) is not prime and we test divisibility up to square root of the number, we will find one of the factors.

LoMaPhLoMaPh
3531 gold badge7 silver badges17 bronze badges

It's all really just basic uses of Factorization and Square Roots.

It may appear to be abstract, but in reality it simply lies with the fact that a non-prime-number's maximum possible factorial would have to be its square root because:

sqrroot(n) * sqrroot(n) = n.

Given that, if any whole number above 1 and below or up to sqrroot(n) divides evenly into n, then n cannot be a prime number.

Pseudo-code example:

Super CatSuper Cat
9101 gold badge11 silver badges19 bronze badges

Let's suppose that the given integer N is not prime,

Then N can be factorized into two factors a and b , 2 <= a, b < N such that N = a*b.Clearly, both of them can't be greater than sqrt(N) simultaneously.

Let us assume without loss of generality that a is smaller.

Now, if you could not find any divisor of N belonging in the range [2, sqrt(N)], what does that mean?

This means that N does not have any divisor in [2, a] as a <= sqrt(N).

Therefore, a = 1 and b = n and hence By definition, N is prime.

..

Further reading if you are not satisfied:

Many different combinations of (a, b) may be possible. Let's say they are:

(a1, b1), (a2, b2), (a3, b3), ... , (ak, bk). Without loss of generality, assume ai < bi, 1<= i <=k.

Now, to be able to show that N is not prime it is sufficient to show that none of ai can be factorized further. And we also know that ai <= sqrt(N) and thus you need to check till sqrt(N) which will cover all ai. And hence you will be able to conclude whether or not N is prime.

..

user8038009

So to check whether a number N is Prime or not.We need to only check if N is divisible by numbers<=SQROOT(N). This is because, if we factor N into any 2 factors say X and Y, ie. N=XY. Each of X and Y cannot be less than SQROOT(N) because then, XY < N Each of X and Y cannot be greater than SQROOT(N) because then, X*Y > N

Therefore one factor must be less than or equal to SQROOT(N) ( while the other factor is greater than or equal to SQROOT(N) ). So to check if N is Prime we need only check those numbers <= SQROOT(N).

rhea rodriguesrhea rodrigues

Let's say we have a number 'a', which is not prime [not prime/composite number means - a number which can be divided evenly by numbers other than 1 or itself. For example, 6 can be divided evenly by 2, or by 3, as well as by 1 or 6].

6 = 1 × 6 or 6 = 2 × 3

So now if 'a' is not prime then it can be divided by two other numbers and let's say those numbers are 'b' and 'c'. Which means

a=b*c.

Now if 'b' or 'c' , any of them is greater than square root of 'a 'than multiplication of 'b' & 'c' will be greater than 'a'.

So, 'b' & 'c' is always <= square root of 'a' to prove the equation 'a=b*c'.

Because of the above reason, when we test if a number is prime or not, we only check until square root of that number.

Abu Naser Md ShoaibAbu Naser Md Shoaib

Let n be non-prime. Therefore, it has at least two integer factors greater than 1. Let f be the smallest of n's such factors. Suppose f > sqrt n. Then n/f is an integer LTE sqrt n, thus smaller than f. Therefore, f cannot be n's smallest factor. Reductio ad absurdum; n's smallest factor must be LTE sqrt n.

Reb.CabinReb.Cabin
3,0242 gold badges24 silver badges48 bronze badges

Given any number n, then one way to find its factors is to get its square root p:

Of course, if we multiply p by itself, then we get back n:

It can be re-written as:

Where p = a = b. If a increases, then b decreases to maintain a*b = n. Therefore, p is the upper limit.

typelogictypelogic

To test the primality of a number, n, one would expect a loop such as following in the first place :

What the above loop does is this : for a given 1 < i < n, it checks if n/i is an integer (leaves remainder 0). If there exists an i for which n/i is an integer, then we can be sure that n is not a prime number, at which point the loop terminates. If for no i, n/i is an integer, then n is prime.

As with every algorithm, we ask : Can we do better ?

Let us see what is going on in the above loop.

Prime Number Program Using Sqrt

The sequence of i goes : i = 2, 3, 4, .. , n-1

And the sequence of integer-checks goes : j = n/i, which is n/2, n/3, n/4, .. , n/(n-1)

If for some i = a, n/a is an integer, then n/a = k (integer)

or n = ak, clearly n > k > 1 (if k = 1, then a = n, but i never reaches n; and if k = n, then a = 1, but i starts form 2)

Also, n/k = a, and as stated above, a is a value of i so n > a > 1.

So, a and k are both integers between 1 and n (exclusive). Since, i reaches every integer in that range, at some iteration i = a, and at some other iteration i = k. If the primality test of n fails for min(a,k), it will also fail for max(a,k). So we need to check only one of these two cases, unless min(a,k) = max(a,k) (where two checks reduce to one) i.e., a = k , at which point a*a = n, which implies a = sqrt(n).

In other words, if the primality test of n were to fail for some i >= sqrt(n) (i.e., max(a,k)), then it would also fail for some i <= n (i.e., min(a,k)). So, it would suffice if we run the test for i = 2 to sqrt(n).

AroonalokAroonalok

Any composite number is a product of primes.

Let say n = p1 * p2, where p2 > p1 and they are primes.

If n % p1 0 then n is a composite number.

Prime Number Using Sqrt 1

If n % p2 0 then guess what n % p1 0 as well!

So there is no way that if n % p2 0 but n % p1 ! 0 at the same time.In other words if a composite number n can be divided evenly byp2,p3..pi (its greater factor) it must be divided by its lowest factor p1 too.It turns out that the lowest factor p1 <= Math.square(n) is always true.

daGodaGo

protected by eyllanescJan 11 '18 at 0:29

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead? Boxing games mac.

Not the answer you're looking for? Browse other questions tagged algorithmprimesprimality-test or ask your own question.

Comments are closed.