da es sich hier nicht um eine mehr oder weniger wichtige Support-Bitte, sondern nur um relativ sinnfreie Basteleien handelt, dies in Smalltalk.
Ich spiele gerade ein bisschen mit Zahlenreihen (Collatz-Reihen) herum und nutze dabei auch etwas größere Werte. Ob diese nun korrekt berechnet oder nur aus Blödsinn bestehen, sollte mir ein Range-Check zeigen. Hier ein Beispiel-Programm:
Code: Alles auswählen
uses crt;
// var n : Uint32;
var n : Uint64;
{$R+}
BEGIN
// n := 4294967295; // = 2 ^ 32 - 1
// n := 18446744073709551615; // = 2 ^ - 1
// n := 1152921504606846976 + 1; // 2 ^ 60 + 1
// n := 1125899906842624; // 2 ^ 50
n := 9223372036854775807; // 2 ^63 -1
while n > 1 do
begin
if odd (n) then n := 3 * n + 1
else n := n div 2;
writeln (n);
end;
END.