Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Poligno

[DÚVIDA]Exercício iniciante.

Recommended Posts

Olá galera,começa mais um semestre da faculdade e cá estou eu lhes enchendo o saco novamente hahahha.

 

O exercício pede que eu faça um código que imprima na tela os 5 primeiros números perfeitos,que pra quem ñ sabe é um numero que a soma dos seus divisores(menos ele msm) é igual ao próprio numero,ex: 1+2+3=6.

O netbeans acusa o seguinte erro:

Exception in thread "main" java.lang.ArithmeticException: / by zero
at javaapplication1.JavaApplication1.main(JavaApplication1.java:13)
C:\Users\poligno\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)

 

Meu código está assim:

 


package javaapplication1;

public class JavaApplication1 {

public static void main(String[] args){

int aux=0,cont=0,num=1;

while(cont<5){

for(int i=0;i<num;i++){ //num guarda o numero que está sendo testado
if(num%i==0) aux=aux+i; //aux guarda a soma dos divisores
}

if(aux==num){ //compara se a soma dos divisores é igual ao numero testado
System.out.println(num); //se sim,ele printa o numero atual que está sendo testado
cont=cont+1; //e incrementa o contador de numeros perfeitos encontrados
}

aux=0; //'somador de divisores' é zerado
num=num+1; //variavel num eh incrementada sempre ao fim do código

}
}
}

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque estava havendo uma divisão por zero como o própio log diz

"java.lang.ArithmeticException: / by zero"

na sua condição você pede o para pegar o resto da divisão, e seu looping começa em zero.

 

eu não vou dar a resposta de como consertar porque ai já é de mais :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque estava havendo uma divisão por zero como o própio log diz

"java.lang.ArithmeticException: / by zero"

na sua condição você pede o para pegar o resto da divisão, e seu looping começa em zero.

 

eu não vou dar a resposta de como consertar porque ai já é de mais :P

 

É porque estava havendo uma divisão por zero como o própio log diz

"java.lang.ArithmeticException: / by zero"

na sua condição você pede o para pegar o resto da divisão, e seu looping começa em zero.

 

eu não vou dar a resposta de como consertar porque ai já é de mais :P

Nem precisa mano,essa dica já foi o suficiente,e esse n era o único erro do código ,segue o código atualizado caso outros newbies tenham a mesma dúvida e esbarrem nesse tópico:

 

 

package javaapplication1;

 

import java.util.Scanner;

 

public class JavaApplication1 {

 

public static void main(String[] args) {

 

int aux=0, cont=0, num=2;

 

while(cont<5){

 

for(int i=1; i<num; i++){

if(num%i==0)

aux+=i;

}

 

if(aux==num){

System.out.println("Numero perfeito: "+num);

cont++;

}

 

aux=0;

num+=2;

}

}

 

}

 

:D :D :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.