1 | initial version |

Let us consider the "simpler" situation for the degree of the cyclotomic polynomial:

```
p = ZZ( (2^128-3)/76439 )
F = GF(p)
S.<W> = PolynomialRing( F )
K.<w> = GF( p^2 )
R.<z> = PolynomialRing( K, sparse=True )
# N = 9817501343317677957515279627338949795623675802414662483433914174328
N = 2^3 * 17 * (1000.next_prime())
f = cyclotomic_polynomial( N, 'z' )
len(f.monomials())
```

This code constructs $f$ having

```
4985
```

monomials. The value of $N$ is

```
sage: N
137224
```

and it is "small", when compared to the "bigger" number

```
sage: 9817501343317677957515279627338949795623675802414662483433914174328.factor()
```

2^3 * 17 * 72187509877335867334671173730433454379585851488343106495837604223

For this smaller $N$, the polynomial $f$ was computed *and stored*. It is of course no place to store the corresponding data for the "bigger" number instead. And the code for the computation of the cyclotomic polynomial was designed for such practical situations.

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.