Exercicio de parametro e divisão

Estou com uma dificuldade neste exercicio:
Recebe via parâmetro um número inteiro na faixa de 1 até 9(inclusive) (n1)e o segundo número inteiro positivo(n2). O método deve retornar o total de um números divisíveis por n1, na faixa de 1 até n2.
na minha abstração pensei da seguinte forma:
criação de duas variaveis
int n1 n2.
um comando Scanner para fazer a entrada dos dois numeros.
agora preciso criar uma estrutura de repetição que resolva a seguite situação para mim:
pegue n1 e veja se é de 1 a 9
e faça a divisão de n1 /1 e vai ate n2 dividindo.
pergunta, como faço isso?

Sua explicação ficou meia confusa
no começo vc diz que é pra verificar quais números são divisíveis por n1
depois já fala que tem q verificar se o n1 é divisivel por n2 (de 1 até n)

Mas pelo que entendi do que vc falou, faça o seguinte:
faça um if pra verificar se o numero é maior que 0, e menor que 10
Suponhamos que o valor do n2 também seja 9
dentro do if vc cria um for, sendo que o for executar até que o valor do contador seja menor que n2 (no caso do exemplo que estou citando, vai de 0 a 8, ou seja, 9 passagens)
dentro desse for vc cria um if, testando o resto da divisão entre n1 e (contador + 1), se o resto for 0, dai vc conta como sendo divisível
Mas por que (contador + 1)?
porque ele vai passar pelo intervalo de 1 ate 9
já que o for vai percorrer 9 vezes, de 0 ate 8, qnd vc coloca (contador + 1), vc irá ter os valores de 1 até 9

Espero que tenha ajudado!
Se essa nao for a ideia que você queria, peço desculpas

Nada cara pow muito obrigado, e bem assim que o meu professor escrevei!
estou fazendo a diciplina de orientação a objeto e não sei nada de java!
estou tentando quebrar a cabeça com isso valeu mesmo.
pensei praticamente a mesma coisa que voce escreveu

int n1/* é um intervalo de 1 a 9 /, n2/
* é o segundo numero inteiro
* positivo
/;
/

* este método deve retornar o total de números divisíveis por n1, na
* faixa de 1 até n2
*/

System.out.println("Entre com o primeiro numero");
n1 = scan.nextInt();

if(n1 >= 1 && n1 <= 9){
System.out.println("Entre com o segundo numero");
n2 = scan.nextInt();
}if (n2 > 0){
	
	for(n1/1)
} 

mas ainda estou muito enrolado!
hehehehehhe.

package lista02;

import java.util.Scanner;

public class Divisao {
Scanner scan = new Scanner(System.in);
int n1/* é um intervalo de 1 a 9 /, n2/
* é o segundo numero inteiro
* positivo
/;
/

* este método deve retornar o total de números divisíveis por n1, na
* faixa de 1 até n2
*/

System.out.println("Entre com o primeiro numero");
n1 = scan.nextInt();

if(n1 >= 1 && n1 <= 9){
System.out.println("Entre com o segundo numero");
n2 = scan.nextInt();
}if (n2 > 0){
	
	for(n1/n2; n2-Divisao; n2--);
} 

}

mas não esta dando certo! hehehehehe

mas vc tem que fazer o seguinte

Por exemplo, tem-se dois numeros inteiros, o primeiro (n1) valendo 8 e o segundo (n2) valendo 5

vc testa se está no intervalo que vc disse aí para executar ou não as ações, da seguinte forma:

if ((n1 > 0) && (n1 < 10)) { // ou entao n1 >= 1 e n1 <= 9 tanto faz for (int i = 0; i < n2; i++) { // caso obedeça à condição do if anterior, irá executar esse for que vai de 0 até 4 (nesse exemplo que to citando), pq percorrerá 5 vezes if (n1 % (i+1) == 0) { // aqui é o if que vai testar se o resto da divisão é zero, pq se for zero, quer dizer que o número é divisivel contNumDivisiveis++; //pelo que vc falo, vc tem que contar quantos numeros são divisiveis, certo? então aki vc incrementa um contador pra isso } } }

Até +

jvkirk

Cara desculpa minha ingnorancia mas o que é o “i” e o “%”???

o i é o contador do for, vc pode chamar de qualquer coisa: zohan, laranja, guitarra, neymar, santos
pq nesse for tem 3 partes, a inicialização do contador, o teste condicional (ou seja, ele vai executar enquanto esse teste for verdadeiro), e o incremento do contador (digo nesse for, pq tem otro tipo de for, mas q n tem nada a ver com o problema aqui)

Pense o seguinte
o i vai controlar o numero de execuções do for, sendo que o i vai ser incrementado a cada execução do for, portanto, o for vai executar as ações dentro dele enquanto a condição estiver sendo obedecida (i < n2)
no caso do exemplo que citei, o for será executado 5 vezes (pq foi o numero q citei de exemplo), entao o i vai percorrer de 0 ate 4 (5 vezes entao). Sendo assim, o for vai executar enquanto o i < n2.

Da uma estudada no for aí

quanto ao %, é o operador que vai pegar o resto da divisão entre dois numeros. Dai no if ali compara com 0 (n1 % (i+1) == 0) pra verificar se o resto da divisão é zero.

jvkirk

Oi, negresco.baixo.

O resto da divisão é calculado pelo %.
Se você quiser o resto da divisão entre o número 100 e 2, você vai fazer 100%2.

package lista02;

import java.util.Scanner;

public class Divisao {
Scanner ler = new Scanner(System.in);
int n1;
int n2;

/* n1 é um intervalo de 1 a 9 */

/* n2 é o segundo numero inteiro Positive */
/*
 * este método deve retornar o total de números divisíveis por n1, na
 * faixa de 1 até n2
 */



System.out.println("Entre com o Primeiro numero");
n1 = ler.nextInt();

System.out.println("Entre com o segundo numero");
n2 = ler.nextInt();




public Divisao(int Divisao)
{
	int contNumDivisiveis;
	
	if ((n1 > 0) && (n1 < 10)) {  // ou entao n1 >= 1 e n1 <= 9 tanto faz   
		   for (int i = 0; i < n2; i++) { // caso obedeça à condição do if anterior, irá executar esse for que vai de 0 até 4 (nesse exemplo que to citando), pq percorrerá 5 vezes   
		       if (n1 % (i+1) == 0) { // aqui é o if que vai testar se o resto da divisão é zero, pq se for zero, quer dizer que o número é divisivel   
		          contNumDivisiveis++; //pelo que vc falo, vc tem que contar quantos numeros são divisiveis, certo? então aki vc incrementa um contador pra isso   
		       }   
		   }   
		}  

	
	       System.out.println(+Divisao);
}

}

[code]

porque no eclipse ta dando erro!

Este codigo acima não está correto?

Este é a classe principal

package lista02;

public class Exercicio1c {

public static void main(String[] args) {
	Divisao D = new Divisao();
	D.Divisao(0);

}

}

Bom, vamos lá

já que vc quer fazer uma classe Divisao, vamos analisá-la

essa parte de leitura de dados, faça na classe principal, lá que vai iniciar a execução, e qnd vc digitar os dados, eles devem ser passados para o método que irá dividir lá na classe Divisao

Portanto, qnd vc digitar os numeros, o q vc tem q fazer com eles? passar como argumento na chamada do método que irá dividir

Então logo após inserir os números, o método que divide deve ser chamado, e passado o n1 e o n2

por exemplo:

[code]import java.util.Scanner;

public class TestaDivisao {
public static void main(String[] args) {
int n1, n2;
Divisao d = new Divisao();
Scanner leitura = new Scanner(System.in);

	System.out.println("Digite o primeiro numero: ");
	n1 = leitura.nextInt();

	System.out.println("Digite o segundo numero: ");
	n2 = leitura.nextInt(); 
	
	System.out.println ("Quantidade de numeros divisiveis: " + d.dividir (n1, n2)); //chama o método dividir da classe Divisao, e passa os numeros digitados como argumentos
}

}[/code]

Na classe Divisao, deve estar contido o método que irá dividir, sendo que ele terá como parâmetros 2 inteiros (pois você passou 2 inteiros na chamada do método), e tera a instrução que já te expliquei:

[code]public class Divisao {

public int dividir(int n1, int n2) { // os parâmetros recebem os valores passados
	//o resto ja expliquei
	int contNumDivisiveis = 0;

	if ((n1 > 0) && (n1 < 10)) {
		for (int i = 0; i < n2; i++) {
			if (n1 % (i + 1) == 0) {
				contNumDivisiveis++;
			}
		}
	}
	return contNumDivisiveis;
}

}[/code]

Enfim, ta aí
Espero q tenha entendido

jvkirk