*Dizemos que um número inteiro é um número perfeito se a soma de seus fatores,
incluindo 1( mas não o próprio número), é igual ao número. Por exemplo, 6 é um
número perfeito porque 6 = 1 + 2 + 3. Escreva um método que determina se um
determinado número é um número perfeito.
*A série de Fibonacci inicia com 0 e 1 e tem a propriedade de que cada número de
Fibonacci subseqüente é a soma dos dois números que o precedem. Escreva um
método implemente esta série de forma recursiva.
A série de Fibonacci pode ser definida recursivamente como segue:
fibonacci(0) = 0
fibonacci(1) = 1
fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)
[quote=Samilu]Alguém pode me arrumar o código dessas questões:
*Dizemos que um número inteiro é um número perfeito se a soma de seus fatores,
incluindo 1( mas não o próprio número), é igual ao número. Por exemplo, 6 é um
número perfeito porque 6 = 1 + 2 + 3. Escreva um método que determina se um
determinado número é um número perfeito.
*A série de Fibonacci inicia com 0 e 1 e tem a propriedade de que cada número de
Fibonacci subseqüente é a soma dos dois números que o precedem. Escreva um
método implemente esta série de forma recursiva.
A série de Fibonacci pode ser definida recursivamente como segue:
fibonacci(0) = 0
fibonacci(1) = 1
fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)[/quote]
Verifica se número é perfeito
/*-----------------------------------------------------------------------*/
/* Verifica se número é perfeito - algoritmo eficiente. */
/*-----------------------------------------------------------------------*/
public static boolean perfeito2(long numero) {
long soma,i;
double raiz = Math.sqrt(numero); /* Limite para o divisor */
soma = 1; /* 1 divide qualquer número */
for (i=2; i < raiz; ++i) /* Até antes da raiz quadrada */
if (numero % i == 0) /* Se divide número */
soma += i + numero/i; /* Soma divisor e quociente */
if (raiz == (int) raiz) /* Se raiz for inteira, ela */
soma += (int) raiz; /* precisa ser somada */
return numero == soma; /* True ou false */
}
[size=18][/size]Tem esse codigo que eu criei que é bastante simples tb.
public String Perfeito(long numeroPerf){
int aux=0;
for (int i=1 ;i<numeroPerf;i++){
if (numeroPerf % i==0){
aux=i+aux;
}
}
if (aux==numeroPerf){
return “é Perfeito!”;
}else
return “não é Perfeito!”;
}>
Dá uma pesquisada no Google e no wikipedia q tem esses códigos fontes prontos… tome cuidado aki no forum o pessoal normalmente nao curte fazer o dever de casa dos outros, tente fazer, conforme for dando erros ou duvidas vc vai postando q o pessoal responde.
não é que o pessoal não curti fazer o dever de casa dos outros, é que isso é trabalho DELE, o mínimo que a pessoa devia fazer era tentar fazer e não ir direto para um forum com lição de casa dele…
mas eu não reclamo, afinal pra mim é otimo que ele não aprenda a programar… é um a menos no mercado de trabalho
Vc so nao levou em conta o desperdicio de vida, dinheiro e tempo de todo mundo envolvido: familia, professores, quem poderia estar ocupando uma vaga em qualquer que seja o curso que o nosso amigo espertao ta fazendo…
/**
* @param args
*/
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("digite um numero inteiro: ");
int i = s.nextInt(); // le um inteiro
int nperfeito = 0;
boolean Primo = true;
for (int a = 2 ; a < i ; a++ ) {
if (i % a == 0) {
Primo = false;
break;
}else if (i % a != 0) {
Primo = true;
nperfeito = (int) (Math.pow (2,i) -1 * Math.pow(2,i) -1);
// Notando que 2n − 1 é um número primo em cada uma destas instâncias,
// Euclides provou que a fórmula 2n−1(2n − 1) dá um número perfeito para
// sempre que 2n − 1 é primo (Euclides, Prop. IX.36).
break;
}
}
if (nperfeito >=0) {
System.out.println("O numero " + i + " é numero perfeito ");
}
if (Primo == true){
System.out.println("O numero " + i + " é numero primo ");
}else if (Primo == false)
System.out.println("O numero " + i + " não é um numero primo ");
}