Il numero di cifre è pari: 2 | 4 | 6 | …
Osserva
- x1, quadrato di x3
- x2, taglio delle cifre a destra
- x3, taglio delle cifre a sinistra
CIFRE = int(input("Quante cifre? "))
SEME = int(input("Seme? "))
NUM = int(input("Quanti numeri? "))
print()
Q = 10**(CIFRE//2)
R = 10**CIFRE
x3 = SEME
for i in range(NUM):
x1 = x3**2
x2 = x1//Q
x3 = x2%R
print("%2i %8i %6i %4i"
%(i, x1, x2, x3))
Quante cifre? 4
Seme? 1234
Quanti numeri? 10
0 1522756 15227 5227
1 27321529 273215 3215
2 10336225 103362 3362
3 11303044 113030 3030
4 9180900 91809 1809
5 3272481 32724 2724
6 7420176 74201 4201
7 17648401 176484 6484
8 42042256 420422 422
9 178084 1780 1780
L’elaborazione di x può essere riassunta in un’unica espressione
CIFRE = int(input("Quante cifre? "))
SEME = int(input("Seme? "))
NUM = int(input("Quanti numeri? "))
print()
Q = 10**(CIFRE//2)
R = 10**CIFRE
x = SEME
for i in range(NUM):
x = x**2//Q%R
print(x, end=" ")
Seme? 1234
Quanti numeri? 10
5227 3215 3362 3030 1809
2724 4201 6484 422 1780