# Revision history [back]

Sage is useful because there are many ready-to-use tools. In particular to know if an integer is prime or to get its list of divisors.

sage: P1 = []   # list of pairs (n,n) when n is prime
sage: P2 = []   # list of pairs (n,d) where d|n and n is not prime
sage: for n in xsrange(1,100):
....:    if n.is_prime():
....:        P1.append((n,n))
....:    else:
....:        P2.extend([(n,d) for d in n.divisors()[1:]])
sage: G1 = point2d(P1,color='red',pointsize=20)
sage: G2 = point2d(P2,color='blue',pointsize=5)
sage: (G1 + G2).show()


Note that I used xsrange instead of xrange. This is because xsrange produces Sage integers from which you can use .is_prime() and .divisors() whereas xrange produces Python integers.

Sage is useful because there are many ready-to-use tools. In particular to know if an integer is prime or to get its list of divisors.

sage: P1 = []   # list of pairs (n,n) when n is prime
sage: P2 = []   # list of pairs (n,d) where d|n and n is not prime
sage: for n in xsrange(1,100):
....:    if n.is_prime():
....:        P1.append((n,n))
....:    else:
....:        P2.extend([(n,d) for d in n.divisors()[1:]])
sage: G1 = point2d(P1,color='red',pointsize=20)
sage: G2 = point2d(P2,color='blue',pointsize=5)
sage: (G1 + G2).show()


Note that I used xsrange instead of xrange. This is because xsrange produces Sage integers from which you can use .is_prime() and .divisors() whereas xrange produces Python integers.

Concerning your problem "how common it is for a number to be prime" you may have a look at the prime number theorem which describes the distribution of primes among the integers.