Programa em Java utilizando um método para calcular a quantidade de divisores de um número

12/01/2020

6

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;
}
}
Responder

Post mais votado

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");
		}
	}
}
Responder

Mais Posts

12/01/2020

João Medeiros

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!
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar