public int startingNumberWithHighestCountSoFar = 0;
public int highestNumberOfStepsSoFar = 0;
public long currentSequenceValue = 0;
public int numberOfSteps = 0;
public bool isFinished = false;
public static void Main()
Program prg = new Program();
for(int X = 0 ; X <= 1000000 ; X++)
prg.currentSequenceValue = X;
while(prg.currentSequenceValue!=1 && prg.currentSequenceValue>1)
if(prg.currentSequenceValue % 2 == 0 )
prg.currentSequenceValue = prg.currentSequenceValue/2;
prg.currentSequenceValue = (prg.currentSequenceValue*3)+1;
if(prg.numberOfSteps>prg.highestNumberOfStepsSoFar)
prg.highestNumberOfStepsSoFar=prg.numberOfSteps;
prg.startingNumberWithHighestCountSoFar = X;
Console.WriteLine("New highest number: " + prg.startingNumberWithHighestCountSoFar + " with " + prg.highestNumberOfStepsSoFar + " members!");