1 | initial version |

Regarding the first question, `P`

is threated as a polynomial over `GF(27)`

:

```
sage: P.parent()
Univariate Polynomial Ring in x over Finite Field in c of size 3^3
```

Now, when you write `P(i) for i in range(0,p**q)`

, you should understand that i is an integer, so it has to be transformed into an element of `K`

to be accepted by `P`

. This morphism maps 1 to 1, so every integer remains stuck int the prime field `GF(3)`

.

If you want to compute `P`

on each value of `K`

, you should directly iterate oeve relement of `K`

:

```
sage: e = [P(i) for i in K]
```

and you will see that the result is very different.

If you prefer a more "cyclic" view, you can use the multiplicative generator of `K`

, which you named `c`

:

```
sage: c = K.gen()
sage: e = [P(c**i) for i in range(0,p**q)]
```

2 | No.2 Revision |

Regarding the first question, `P`

is ~~threated as ~~a polynomial over `GF(27)`

:

```
sage: P.parent()
Univariate Polynomial Ring in x over Finite Field in c of size 3^3
```

Now, when you write `P(i) for i in range(0,p**q)`

, you should understand that i is an integer, so it has to be transformed into an element of `K`

to be accepted by `P`

. This morphism maps 1 to 1, so every integer remains stuck int the prime field `GF(3)`

.

If you want to compute `P`

on each value of `K`

, you should directly iterate oeve relement of `K`

:

```
sage: e = [P(i) for i in K]
```

and you will see that the result is very different.

If you prefer a more "cyclic" view, you can use the multiplicative generator of `K`

, which you named `c`

:

```
sage: c = K.gen()
sage: e = [P(c**i) for i in range(0,p**q)]
```

3 | No.3 Revision |

Regarding the first question, `P`

is a polynomial over `GF(27)`

:

```
sage: P.parent()
Univariate Polynomial Ring in x over Finite Field in c of size 3^3
```

Now, when you write `P(i) for i in range(0,p**q)`

, you should understand that i is an integer, so it has to be transformed into an element of `K`

to be accepted by `P`

. This morphism maps 1 to 1, so every integer remains stuck int the prime field `GF(3)`

~~.~~. The additive struture of `GF(p**q)`

is that of $(\mathbb{Z}/p\mathbb{Z})^q$, not $\mathbb{Z}/p^q\mathbb{Z}$

If you want to compute `P`

on each value of `K`

, you should directly iterate oeve relement of `K`

:

```
sage: e = [P(i) for i in K]
```

and you will see that the result is very different.

If you prefer a more "cyclic" view, you can use the multiplicative generator of `K`

, which you named `c`

:

```
sage: c = K.gen()
sage: e = [P(c**i) for i in range(0,p**q)]
```

4 | No.4 Revision |

Regarding the first question, `P`

is a polynomial over `GF(27)`

:

```
sage: P.parent()
Univariate Polynomial Ring in x over Finite Field in c of size 3^3
```

Now, when you write `P(i) for i in range(0,p**q)`

, you should understand that i is an integer, so it has to be transformed into an element of `K`

to be accepted by `P`

. This morphism maps 1 to 1, so every integer remains stuck int the prime field `GF(3)`

. The additive struture of `GF(p**q)`

is that of $(\mathbb{Z}/p\mathbb{Z})^q$, not ~~$\mathbb{Z}/p^q\mathbb{Z}$~~$\mathbb{Z}/p^q\mathbb{Z}$.

If you want to compute `P`

on each value of `K`

, you should directly iterate oeve relement of `K`

:

```
sage: e = [P(i) for i in K]
```

and you will see that the result is very different.

`K`

, which you named `c`

:

```
sage: c = K.gen()
sage: e = [P(c**i) for i in range(0,p**q)]
```

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.