
\begin{enumerate}
\item $n = 30 + 7 = 10\times3 + 7$. Donc $x=3$ et $u=7$.
\item $n = 140 + 6 = 10\times14 + 6$. Donc $x=14$ et $u=6$.
\item $(10x+u)^2 = 100x^2 + 20xu + u^2 = 10(10x^2+2xu) + u^2$.

Ainsi, $u^2$ et $n^2$ ont le même chiffre des unités.

Or, $u<10$ donc nous avons 10 possibilités :

\begin{itemize}
\item $u=0$ : $u^2=0$ et donc $n$ et $n^2$ ont le même chiffre des unités;
\item $u=1$ : $u^2=1$ et donc $n$ et $n^2$ ont le même chiffre des unités;
\item $u=2$ : $u^2=4$ et donc $n$ et $n^2$ n'ont pas le même chiffre des unités;
\item $u=3$ : $u^2=9$ et donc $n$ et $n^2$ n'ont pas le même chiffre des unités;
\item $u=4$ : $u^2=16$ et donc $n$ et $n^2$ n'ont pas le même chiffre des unités;
\item $u=5$ : $u^2=25$ et donc $n$ et $n^2$ ont le même chiffre des unités;
\item $u=6$ : $u^2=36$ et donc $n$ et $n^2$ ont le même chiffre des unités;
\item $u=7$ : $u^2=49$ et donc $n$ et $n^2$ n'ont pas le même chiffre des unités;
\item $u=8$ : $u^2=64$ et donc $n$ et $n^2$ n'ont pas le même chiffre des unités;
\item $u=9$ : $u^2=81$ et donc $n$ et $n^2$ n'ont pas le même chiffre des unités.
\end{itemize}

\item Une fonction Python possible est celle proposée page suivante.
\begin{python}
def fct(n):
    for k in range(n+1):
        u = k % 10 # chiffre des unités de k
        v = k**2 % 10 # chiffre des unités du carré de k
        if u == v:
            print(k, end = ' ')
\end{python}

Explications:
\begin{itemize}
\item on crée une boucle itérative qui nous permet de parcourir tous les entiers de 0 à $n$;

\item pour chaque entier $k$ compris entre 0 et $n$, on définit \texttt{u} et \texttt{v} comme étant le chiffre des unités respectivement de $k$ et de $k^2$;

\item si ces deux chiffres sont égaux (ligne 6) alors on l'affiche; ici, l'instruction \og \texttt{print(k, end=' '} \fg{} spécifie que les nombres seront affichés en ligne (en non avec un retour à la ligne à chaque itération).
\end{itemize}

Cela donne par exemple :

\begin{console}
>>> fct(20)
0 1 5 6 10 11 15 16 20
\end{console}
\end{enumerate}
