Apenas para ajudar

29/07/2013

Tenho realizado alguns testes de emprego e a maioria pede para escrever um método que calcule um fatorial ou dado um intervalo, quais número nesse intervalo são primos. Como muita gente aqui está à procura de um emprego, resolvi enviar dois métodos para calcular o fatorial e os primos dentro de um intervalo. Espero que ajude a alguém.

public List<Int32> primo(int num)
{
List<Int32> lista = new List<int>();
for (int i = 0; i < num; i++)
{
bool ok = true;
int j = 2;

if (i > 0)
{
while(j <= i-1 && ok)
{
if(i % j == 0)
ok = false;
else
{
ok = true;
j++;
}
}
if(ok)
lista.Add(i);
}
}
return lista;
}

public int fatorial(int num)
{
int n = 0;
if (num > 0)
if (num == 1)
n = 1;
else
n = num * fatorial(num - 1);
return n;
}

Pjava

Respostas

29/07/2013

Fernanda Acacia

obrigada pela ajuda!!!


public List<Int32> primo(int num)
{
List<Int32> lista = new List<int>();
for (int i = 0; i < num; i++)
{
bool ok = true;
int j = 2; 

if (i > 0)
{
while(j <= i-1 && ok)
{
if(i % j == 0)
ok = false;
else
{
ok = true;
j++;
}
}
if(ok)
lista.Add(i);
}
}
return lista;
}

public int fatorial(int num)
{
int n = 0;
if (num > 0)
if (num == 1)
n = 1;
else
n = num * fatorial(num - 1);
return n;
}

Responder Citar

29/07/2013

Aluisio Cavalcante

obrigado PJava!!!
Responder Citar

29/07/2013

Joel Rodrigues

Parabéns pela iniciativa, PJava. Estou só identando o código para facilitar a compreensão.
public List<int> primo(int num)
{
	List<int> lista = new List<int>();
	for (int i = 0; i < num; i++)
	{
		bool ok = true;
		int j = 2; 
		 
		if (i > 0)
		{
			while(j <= i-1 && ok)
			{
				if(i % j == 0)
					ok = false;
				else
				{
					ok = true;
					j++;
				}
			}
			if(ok)
				lista.Add(i);
		}
	}
	return lista;
}
 
public int fatorial(int num)
{
	int n = 0;
	if (num > 0)
		if (num == 1)
			n = 1;
	else
		n = num * fatorial(num - 1);
	return n;
}
Responder Citar

30/07/2013

Joel Rodrigues

Gostaria de propôr apenas uma pequena refatoração na função fatorial, só para reduzir o código:
public int fatorial(int num)
{
	if (num == 1)
        return  1;
    return num * fatorial(num - 1);    
}
Responder Citar

30/07/2013

Joel Rodrigues

Vou marcar o tópico como Concluído, para que sirva como fonte de consulta posteriormente.
Responder Citar

30/07/2013

Fernanda Acacia

obrigada Joel.
Responder Citar