# méthode des carrés tronqués de Von Neumann
n = 10000
m = 8

x = int(input(f"Entrez un nombre à {m} chiffres:"))

print("\nVoici les 100 derniers nombres générés:")
L = [x]
for i in range(n):
    x = x**2
    x = x % (10**(3*m//2))
    x = x // (10**(m//2))
    if i >= n-100:
        print(x)
    L += [x]

from matplotlib.pyplot import *

print(f"\nEt voici l'histogramme des {n} nombres générés:")
hist(L,1000)
show()