public int DecomposicaoFatoresPrimos(int n, int Primo[], int Fator[])
{
int fp = 0;
Fator[fp] = 0;
for (int i=0; Primos[i] <= (int)Math.sqrt(n);i++) {
Fator[fp] = 0;
while (n % Primos[i] == 0 ) {
Fator[fp]++;
n /= Primos[i];
}
if (Fator[fp] > 0) {
Primo[fp++] = Primos[i];
}
}
if (n != 1) {
Primo[fp] = n;
Fator[fp] = 1;
fp++;
}
return fp;
}
public int Sigma(int n)
{
int Primo[] = new int[50];
int Fator[] = new int[50];
int soma=0, fp;
fp = DecomposicaoFatoresPrimos(n,Primo,Fator);
for(int i=0;i==n;i++){
soma=soma + (Potencia(Primo[i],(Fator[i]+1))-1)/(Primo[i] -1);
}
return soma;
}
public int Potencia(int x, int n)
{
int pot;
for (pot = 1; n > 0; n--) pot *= x;
return pot;
}
Bom acho que nao fui claro, funciona assim... usuario digita um numero em Sigma... só que a função Sigma depende da Decomposição, entao com o mesmo numero digitado, queria que o metodo decomposição fizesse a decomposição, e mandasse a lista Primo e a lista Fator para o metodo Sigma. e com essas listas o sigma podesse continuar o curso normal do algoritmo