Como resolver sem brute force?

4 respostas
Vinicius_Zibetti_Res

por exemplo gente, para achar a quantidade de divisores de um numero inteiro:

int total = 0;
    for (int i = 1; i < 10000000; i++) {
        if (a % i == 0) {
            total++;
        }
    }

Isso demora muito pra calcular, sera que teria alguma maneira de calcular isso mais rapido ?

4 Respostas

drsmachado

Ao meu ver isso não é um problema com a sintaxe e os recursos da linguagem.
Isso é uma questão de lógica ou de matemática.
Existem determinados cálculos que são otimizados, matematica ou logicamente falando.
Como o caso da progressão aritmética, da trigonometria.

Certamente você acha uma fórmula que informe isso que precisa, depois, pra adaptar ao código, é simples.

Vinicius_Zibetti_Res

Então amiguinhooo…

Eu gostaria de saber como, pois ja procurei e nao to conseguindo encontrar uma solução…

A

Dá uma lida aqui:

F

faz o loop ir só até a raiz quadrada do numero.

Criado 11 de setembro de 2011
Ultima resposta 11 de set. de 2011
Respostas 4
Participantes 4