# number of distinct prime factors of a number

I know how to write a function that counts the number of distinct prime factors of a number.

Does there exist an inbuilt function for this purpose?

edit retag close merge delete

Sort by ยป oldest newest most voted

There is a function to list the prime divisors or prime factors.

It is called prime_divisors, and aliased as prime_factors.

The len function can then give the number of prime factors.

sage: a = 234

sage: prime_divisors(a)
[2, 3, 13]
sage: len(prime_divisors(a))
3

sage: prime_factors(a)
[2, 3, 13]
sage: len(prime_factors(a))
3


The function prime_divisors and its alias prime_factors also exist as methods of integers.

sage: a.prime_divisors()
[2, 3, 13]
sage: len(a.prime_divisors())
3

sage: a.prime_factors()
[2, 3, 13]
sage: len(a.prime_factors())
3

more

Alternatively one can use omega (or bigomega to count prime factors with multiplicity) functions from GP:

sage: gp.omega(234)
3
sage: gp.bigomega(234)
4

more

## Stats

Seen: 416 times

Last updated: Aug 17 '21