Programa em Java utilizando um método para calcular a quantidade de divisores de um número
Prezados, boa tarde!
Estou com um exercício da faculdade, cujo enunciado é o seguinte:
"Elabore um programa que determine, para um conjunto de números inteiros positivos a serem introduzidos
pelo usuário, quantos são os divisores de cada um. Crie um método que calcule o número de divisores de
um número."
Eu elaborei o código, mas estou em dúvida em relação a como fazer para que o programa possibilite que eu
informe vários números de uma só vez, antes de apresentar o resultados da quantidade de seus divisores.
Alguém pode me ajudar?
import java.util.Scanner;
public class Tema6_1_1 {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int numero;
System.out.println("Informe o numero desejado: ");
numero = entrada.nextInt();
System.out.println("Quantidade de divisores do numero: " + calculaDivisor(numero));
entrada.close();
}
private static int calculaDivisor(int numero){
int resultado = 0;
for (int divisor=1; divisor<=numero; divisor++) {
if (numero % divisor == 0)
resultado++;
}
return resultado;
}
}
Estou com um exercício da faculdade, cujo enunciado é o seguinte:
"Elabore um programa que determine, para um conjunto de números inteiros positivos a serem introduzidos
pelo usuário, quantos são os divisores de cada um. Crie um método que calcule o número de divisores de
um número."
Eu elaborei o código, mas estou em dúvida em relação a como fazer para que o programa possibilite que eu
informe vários números de uma só vez, antes de apresentar o resultados da quantidade de seus divisores.
Alguém pode me ajudar?
import java.util.Scanner;
public class Tema6_1_1 {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int numero;
System.out.println("Informe o numero desejado: ");
numero = entrada.nextInt();
System.out.println("Quantidade de divisores do numero: " + calculaDivisor(numero));
entrada.close();
}
private static int calculaDivisor(int numero){
int resultado = 0;
for (int divisor=1; divisor<=numero; divisor++) {
if (numero % divisor == 0)
resultado++;
}
return resultado;
}
}
João Medeiros
Curtidas 0
Melhor post
Sadasd
12/01/2020
Você pode usar arraylists e loops pra resolver esse problema, arraylists tem tamanho mutável, então você pode simplesmente ir adicionando números até cansar, crie um loop pra pegar os números, e coloque a impressão do resultado somente após esse loop se encerrar, eis um exemplo:
import java.util.ArrayList;
import java.util.Scanner;
public class Main
{
static int calcularDivisores(int numero){
int quantidade = 0;
for(int i = 1; i <= numero; i++){
if(numero % i == 0){
quantidade++;
}
}
return quantidade;
}
public static void main(String[] args) {
boolean continuar = false;
Scanner scan = new Scanner(System.in);
ArrayList<Integer> numeros = new ArrayList();
ArrayList<Integer> divisores = new ArrayList();
do{
System.out.println("Digite um número: ");
int numero = scan.nextInt();
numeros.add(numero);
divisores.add(calcularDivisores(numero));
System.out.println("Deseja continuar?(s/n) ");
String resposta = scan.next();
continuar = resposta.toUpperCase().equals("S");
}while(continuar);
for(int i = 0; i < numeros.size(); i++){
System.out.println("O número " + numeros.get(i) + " possui " + divisores.get(i) + " divisores");
}
}
}
GOSTEI 1
Mais Respostas
João Medeiros
12/01/2020
Você pode usar arraylists e loops pra resolver esse problema, arraylists tem tamanho mutável, então você pode simplesmente ir adicionando números até cansar, crie um loop pra pegar os números, e coloque a impressão do resultado somente após esse loop se encerrar, eis um exemplo:
import java.util.ArrayList;
import java.util.Scanner;
public class Main
{
static int calcularDivisores(int numero){
int quantidade = 0;
for(int i = 1; i <= numero; i++){
if(numero % i == 0){
quantidade++;
}
}
return quantidade;
}
public static void main(String[] args) {
boolean continuar = false;
Scanner scan = new Scanner(System.in);
ArrayList<Integer> numeros = new ArrayList();
ArrayList<Integer> divisores = new ArrayList();
do{
System.out.println("Digite um número: ");
int numero = scan.nextInt();
numeros.add(numero);
divisores.add(calcularDivisores(numero));
System.out.println("Deseja continuar?(s/n) ");
String resposta = scan.next();
continuar = resposta.toUpperCase().equals("S");
}while(continuar);
for(int i = 0; i < numeros.size(); i++){
System.out.println("O número " + numeros.get(i) + " possui " + divisores.get(i) + " divisores");
}
}
}
Valeu, Daniel!
GOSTEI 0