On Thu, Jun 9, 2011 at 7:06 PM, Chris Rebert <c...@rebertia.com> wrote:
> On Thu, Jun 9, 2011 at 1:31 AM, Ganapathy Subramanium
> <sganapathy.subraman...@gmail.com> wrote:
>> Hi Guru's,
>> I'm working on a solution to find the prime factor of the number
>> This part of the code works.. http://www.pastie.org/2041584
>
> For the archives, that code is:
>
> for items in prime_numbers:
>    if num % items == 0:
>        prime_factors.append(items)
>
> print 'The prime factors are : ' , prime_factors

Prime factors don't quite work that way. The prime factors of 24, for
instance, are 2, 2, 2, and 3. But if you're looking for _unique_ prime
factors, then this will work.

Rather than find all prime numbers up to num, stop at sqrt(num) - it's
not possible to have any prime factors larger than that. (Be sure to
include the square root itself; range(2,sqrt(num)) won't work if num
is a perfect square. Use range(2,sqrt(num)+1) for safety.) That will
save a fair amount of effort. Also, if you divide num by each factor
found, it'll make the numbers smaller, which may be faster.

Hope that helps!

Chris Angelico
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to