public void CalculoDeCollatz(int x, Collatz collatz) { int i; int numeroCalculado; int numeroInicial; int numeracaoRegressiva = x; while (numeracaoRegressiva > 1) { i = 0; numeroCalculado = numeracaoRegressiva--; numeroInicial = numeroCalculado; while (numeroCalculado > 1) { i++; numeroCalculado = numeroCalculado % 2 == 0 ? numeroCalculado / 2 : 3 * numeroCalculado + 1; } if (i > _collatz.RetornaSequenciaMaior(collatz)) { collatz.numeroInicial = numeroInicial; collatz.sequenciaMaior = ++i; } } }
static void Main(string[] args) { Collatz collatz = new Collatz(); IServiceCollatz iServiceCollatz = new ServiceCollatz(); ICollatz iCollatz = new RepositoryCollatz(); iServiceCollatz.CalculoDeCollatz(1000000, collatz); Console.WriteLine("O numero inicial " + iCollatz.RetornaNumeroInicial(collatz) + " tem com maior sequencia de " + iCollatz.RetornaSequenciaMaior(collatz)); }