Ask Your Question
0

Why is_prime(6/3) results as False?

asked 10 years ago

logomath gravatar image

updated 10 years ago

tmonteil gravatar image
sage: (6/3).is_integer()
True

sage: (6/3).is_prime()
False
Preview: (hide)

1 Answer

Sort by » oldest newest most voted
2

answered 10 years ago

tmonteil gravatar image

updated 10 years ago

Note that the parent of 6/3 is the Rational Field:

sage: a = 6/3
sage: a.parent()
Rational Field

So, when you write (6/3).is_prime(), you ask whether 6/3 is prime as a rational number, not as an integer, see the documentation:

sage: a.is_prime?
A *prime* element is a non-zero, non-unit element p such that,
whenever p divides ab for some a and b, then p divides a or p
divides b.

So, since 6/3 is a unit in QQ, the answer should be False

sage: a.is_unit()
True
sage: a.is_prime()
False

To see if 6/3 is prime as an integer, just do:

sage: ZZ(6/3).is_prime()
True

So, it is very important in mathematics and in Sage to know where your elements are living. For example the polynomial x^2-2 can not be factorized in Q[x], but it does in ¯Q[x]:

sage: x = polygen(QQ)
sage: (x^2-2).is_irreducible()
True
sage: x = polygen(QQbar)
sage: (x^2-2).is_irreducible()
False
Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 10 years ago

Seen: 2,656 times

Last updated: Mar 06 '15