1.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
* ACM Training 2009
* ACM Problem #11634 - Generate random numbers
* Link: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=78&page=show_problem&problem=2681
*
* @author Dennis Wilfert
* @version 1.0, 08/08/2009
*
* Status : Accepted
* Runtime: 0.280
*/
public class Main {

public static void main(String[] args) throws IOException {

BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
StringBuilder output = new StringBuilder();

// Aktuelle 4-Stellige Zahl
int number;
// Feststellen ob die Zahl bereits existiert
boolean[] numbers = new boolean[10000];
// Anzahl der verschiedenen Zahlen
int values;

while (true) {

number = Integer.parseInt(read.readLine());
if (number == 0) {
break;
}
values = 1;
numbers = new boolean[10000];
numbers[number] = true;


for (int i = 0; i < 10000; i++) {
// Zahl mit sich selbst multiplizieren und die 4 mittleren Ziffern als neue Zahl nehmen
number = ((number * number) / 100) % 10000;

// Ist die Zahl bis jetzt noch nicht vorgekommen dann den Wert in numbers auf true setzen und cases um 1 erhöhen
if (numbers[number] != true) {
numbers[number] = true;
values++;
} // Ansonsten kann abgebrochen werden
else {
break;
}
}
output.append(values);
output.append("\n");

}
System.out.print(output);
}
}