Algorithm for prime factorization

saadsarfraz
Messages
86
Reaction score
1

Homework Statement



One algorithm for finding the prime factorization of a number n is the following: Starting with d = 2, and continuing until n\geqd, try to divide n by d. If n/d, then record d as a (prime) factor and replace n by n/d; otherwise replace d by d + 1.

a) When d is recorded, how do we know that d is prime?
b) Suppose n = ab. Show that a^{2}\leqn or b^{2}\leqn
c)Use this fact to improve the algorithm.

Homework Equations



see above

The Attempt at a Solution



for part a, since we are dividing by a prime number that is how we know that d is prime. I don't know how to do part b but, i think it might have something to do with a/p or b/p, where p is the prime number.
 
Last edited:
Physics news on Phys.org
I think you mean replace n by n/d. But if you are starting with d=2 and dividing n by d, then incrementing d and trying again, for the FIRST value of d that divides n, d MUST be prime. Can you say why?
 
i corrected the error. I'm still unsure about this but the fundamental theorem of arithmetic states that every natural number greater than 1 can be written as a unique product of prime numbers, since d is the first number we are dividing it by, therefore it must be prime.
 
saadsarfraz said:
i corrected the error. I'm still unsure about this but the fundamental theorem of arithmetic states that every natural number greater than 1 can be written as a unique product of prime numbers, since d is the first number we are dividing it by, therefore it must be prime.

That's not super clear. But if d isn't prime then it's divisible by another number. Say e. And e<d. What does that mean in terms of the algorithm?
 
One way to handle the factorization is to divide only by prime numbers. I made a factorization program a few years ago. I used the Sieve of Eratosthenes process to find a list of primes, and then I performed a succession of divisions up to a certain value (square root of something,... forgot the exact reason for this).
 
the only number less than d would be 1 then but the fundamental theorem of arithmetic says that it should be greater than 1, so the next prime number is 2.
 
saadsarfraz said:
the only number less than d would be 1 then but the fundamental theorem of arithmetic says that it should be greater than 1, so the next prime number is 2.

You still don't get it. If you start from 2 and divide n by successive integers, the first d that divides n MUST be prime, otherwise you would have divided n with another integer before you hit d. Right? Right? Right? Don't just quote abstractions, think about it.
 
so if i take n=32 for example then 32/4=8, and 8/4=2, 2/2=1. got it. btw I'm also having some trouble doing part c).
 
It's what symbolpoint said. If you don't find a divisor before you hit sqrt(n), you may as well quit. You aren't going to find one. Why?
 
  • #10
is it because the n/d would no longer be divisible by d, if a<=sqrt(n) or b<=sqrt(n) then can it be that ab<n? I donr really know how to answer this.
 
  • #11
If n=a*b, that's a factorization of n. If both factors were greater than sqrt(n) then a*b>n. That can't be since a*b=n. So at least one of factors a or b must be less than sqrt(n).
 
  • #12
so if the number which is greater than square root of n is not divisible by d then, there are no prime factors for that n?
 
  • #13
No. If n has divisors, then at least one of them must be less than or equal to sqrt(n).
 
Back
Top