Poligno 1 Denunciar post Postado Fevereiro 27, 2016 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: 1FALHA 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
TheBonesCodes 4 Denunciar post Postado Fevereiro 28, 2016 É 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
Poligno 1 Denunciar post Postado Fevereiro 28, 2016 É 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