Duvida de programação em JAVA?

Galera estou estudando e me surgiu uma duvida como pegar a soma dos divisores de R existentes entre 1 e S

Exemplo: Obtenha dois números randômicos R e S e imprima no console a soma dos divisores de

R existentes entre 1 e S.

Sendo:

1 <= R <= 10

1 <= S <= 1000

Boa tarde.

Qual o seu problema com o código?

Eu não tenho certeza mas eu acabei fazendo assim

Random random = new Random();
int r_rand = random.nextInt(10);
int s_rand = random.nextInt(100);
int soma = 0;
	
for(int s = 1; s<=s_rand;s++){
	for(int r = 1;r<=r_rand;r++){
		if(r % s == 0){
			System.out.println(soma +=s);
		}
	}
}

está correto?

Dessa forma, S pode ser menor que R, o que não vai gerar nenhum divisor.
Isso é aceitável?

O tratamento para isso n acontecer eu fiz :slight_smile: só queria saber se a relação do for e soma tá certo

Do jeito que vc colocou, R ou S podem ter valor 0 o que não é permitido.

O jeito correto para achar os DIVISORES de R é assim:

	Random random = new Random();
        //obtem números aleatórios maiores que 0
	int r = random.nextInt(9) + 1;
	int s = random.nextInt(99) + 1;
	int soma = 0;
	for (int i = 1; i <= s; i++) {
                // verifica se é divisor de R
		float resto = r%i;
		if(resto == 0) {
			soma += i;
		}

                // se o contador for maior que R já não há mais DIVISORES possíveis e sai do loop
		if (i > r) {
			break;
		}
	}
	System.out.println(soma);
}
1 curtida

Se gostou da resposta, de um like.
Se resolveu o seu problema, marque minha resposta como RESOLVIDO.
:smile: