import java.util.Scanner;
public class NumeroPerfeito {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = 0;
int soma = 0;
int opcao = 0;
int num1 = 0;
int num2 = 0;
int i = 1;
int j = 0;
System.out.println("Opção = 1 --- verifica se o numero é perfeito");
System.out.println("Opção = 2 --- verifica a quantidade de numeros perfeitos entre dois valores");
System.out.println();
System.out.println("Digite a Opção Desejada");
opcao = input.nextInt();
switch (opcao) {
case 1:
System.out.println("Digite o numero a ser verificado");
n = input.nextInt();
for (i = 1; i < n; i++) {
if (n % i == 0)
soma = soma + i;
}
if (soma == n)
System.out.println("O numero " + n + " é perfeito ");
else
System.out.println("Não é um numero perfeito");
break;
case 2:
System.out.println("Digite o 1 número");
num1 = input.nextInt();
System.out.println("Digite o segundo número");
num2 = input.nextInt();
for (j = num1; j <= num2; j++) {
for (i = 1; i < j; i++) {
if (j % i == 0)
soma = soma + i;
}
if (soma == j)
System.out.println(+j);
soma = 0;
}
break;
}
}
}
orientação a objetos
A
Ola acompanho a comunidade algum tempo mas so agora tomei coragem pra postar :oops: . Conheço um pouquinho de programação devido a faculdade que curso, acho java uma linguagem muito interessante comecei a resolver algum exercícios com ela, resolvi um exercício que possui duas partes a primeira verifica se um numero é um numero perfeito e a segunda verifica a quantidade de números perfeitos que aparecem entre dois valores dados pelo usuário o código abaixo resolve o problema mas gostaria de saber se em java foi interessante a maneira que resolvi. Po gente pode malha o pau criticas são bem vindas, e muito obrigado pela atenção.
3 Respostas
- Crie uma função separada, com a assinatura:
boolean ePerfeito(int numero)
E faça essa função simplesmente retornar true se for perfeito, false se não for.
Aí vc pode usar essa função tanto no primeiro, quanto no segundo switch.
-
Faça o seu for prosseguir se ((soma+i) < n);
Se a soma mais ou próximo número já for maior que n, não há necessidade de prosseguir, certo? -
Crie as variáveis o mais próximo possível do lugar onde irá usa-las;
A
po vlw pelos toques vinigodoy vo tenta implementa-los
[/code]import java.util.Scanner;
public class NumeroPerfeito {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = 0;
int soma = 0;
int opcao = 0;
int num1 = 0;
int num2 = 0;
int i = 1;
int j = 0;
System.out.println("Opção = 1 --- verifica se o numero é perfeito");
System.out.println("Opção = 2 --- verifica a quantidade de numeros perfeitos entre dois valores");
System.out.println();
System.out.println("Digite a Opção Desejada");
opcao = input.nextInt();
switch (opcao) {
case 1:
System.out.println("Digite o numero a ser verificado");
n = input.nextInt();
for (i = 1; i < n; i++) {
if (n % i == 0)
soma = soma + i;
}
if (soma == n)
System.out.println("O numero " + n + " é perfeito ");
else
System.out.println("Não é um numero perfeito");
break;
case 2:
System.out.println("Digite o 1 número");
num1 = input.nextInt();
System.out.println("Digite o segundo número");
num2 = input.nextInt();
for (j = num1; j <= num2; j++) {
for (i = 1; i < j; i++) {
if (j % i == 0)
soma = soma + i;
}
if (soma == j)
System.out.println(+j);
soma = 0;
}
break;
}
}
}
Criado 6 de novembro de 2007
Ultima resposta 8 de nov. de 2007
Respostas 3
Participantes 3
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo