import java.util.Scanner;
public class exjava{
public static void main(String[] args) {
divisores();
}
public static int divisores () {
Scanner scanner = new Scanner(System.in);
System.out.print(“Digite o numero:”);
int n = scanner.nextInt();
int divisores = 0;
int i = 1;
while ( i <= n ) {
if ( n % i == 0 )
divisores = divisores + 1;
i = i + 1;
}
System.out.println(“O numero " +n+ " tem " +divisores +” divisores.");
}
}
O codigo não escreve nada no leitor
Ele não escreve nada pois está preso no loop do while e o método deve ser do tipo void e não int já que ele não retorna nada
package application;
import java.util.Scanner;
public class Prog2 {
public static void main(String[] args) {
divisores();
}
public static void divisores () {
Scanner scanner = new Scanner(System.in);
System.out.print("Digite o numero:");
int n = scanner.nextInt();
int divisores = 0;
int i = 1;
while ( i <= n ) {
if ( n % i == 0 ) {
divisores = divisores + 1;
}
i = i + 1;
}
System.out.println("O numero " +n+ " tem " +divisores +" divisores.");
}
}
1 curtida
Ah ok obrigado,uma questão se deixar o public static int divisores(){
…
E fizer return divisores;
O programa dá ou tenho que fazer mais algo???
Você pode sim fazer um return de “divisores”,apenas terá que criar uma variável que irá armazenar o que for retornar.Mas ainda assim podem ocorrer erros no programa já que a parte de entrada de dados está dentro do método.Um melhor jeito de resolver isso seria:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Digite o numero:");
int n = scanner.nextInt();
int divisores = divisores(n); // passando o número que é informado pelo usuário para o método e guardando ele em uma variável de nome "divisores" também
System.out.println("O numero " + n + " tem " + divisores + " divisor(es).");
}
public static int divisores(int n) {
int divisores = 0;
int i = 1;
while (i <= n) {
if (n % i == 0) {
divisores++;
}
i++; // operador de incremento,o mesmo que usar i = i + 1;
}
return divisores;
}
1 curtida
Obrigado!!