Múltiplos de un número desde 1 hasta M

Programa que lea dos números enteros positivos N y M y muestre los múltiplos de N que hay desde 1 hasta M. Por ejemplo si N = 4 y M = 500 el programa mostrará los múltiplos de 4 desde 1 hasta 500. El valor de N deberá ser menor que el valor de M. Si no se introducen valores válidos para N o M se mostrará el mensaje correspondiente y se vuelven a pedir.
Solución:
Para resolverlo seguiremos los siguientes pasos:
1.    Introducir los valores de N y M por teclado. En este punto se debe comprobar que los valores introducidos por teclado para N y M sean válidos, en concreto se debe comprobar que los valores de N y M sean mayores que cero y además que el valor de N sea menor que el de M.
2.    Mediante un bucle for se mostrarán los múltiplos de N entre 1 y M.
Ejercicio resuelto:
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N, M;

        //Lectura de dos números enteros N Y M
        //N y M deben ser positivos
        //N debe ser menor que M
        do {
            System.out.print("Introduce un número entero positivo: ");
            N = sc.nextInt();
            if(N<=0){
                System.out.println("Debe introducir un número positivo");
            }
        }while(N<=0);
        do {
            System.out.print("Introduce otro número entero positivo mayor que " + N + ": ");            
            M = sc.nextInt();
            if(M<=0){
                System.out.println("Debe introducir un número positivo");
            }else if(N>=M){
                System.out.println("Debe introducir un número mayor que " + N);
            }
        }while(M<=0 || N >=M);
          


        //Mostrar los múltiplos de N desde 1 hasta M
        System.out.println("\nMúltiplos de  " + N + " desde 1 hasta " + M + " : ");
        for (int i = 1; i <= M; i++) {
            if (i % N == 0) {
                System.out.println(i);
            }
        }
    }
}

4 comentarios:

  1. Hola Enrique.. He realizado este ejercicio con un solo do-while y funciona...Estaría muy agradecida si me indicara si es valido o no.

    package EjerEstructuras_Repetitivas;

    import java.util.Scanner;

    public class dosnumerosNM_muestreMultiplosdeN {

    public static void main(String[] args) {

    int N,M;
    Scanner sc = new Scanner(System.in);

    do {
    System.out.println("Introduzca dos numeros");
    N= sc.nextInt();
    M= sc.nextInt();

    if(N>M) System.out.println("El primer numero debe ser menor que el segundo");
    if (N==M) System.out.println("Los numeros deben ser diferentes");
    if(N<0 && M<0) System.out.println(" Introduzca numeros positivos");

    }while(N>=M);

    for(int i=N; i<M; i++) {
    int a= i%N;
    if(a==0)

    System.out.print(i+" ");
    }
    sc.close();

    }
    }

    ResponderEliminar
  2. Si,hasta ahorras espacio en memoria!!

    ResponderEliminar
  3. alguien pasenlo pero en javascript

    ResponderEliminar
    Respuestas
    1. var N, M;
      do {
      N = prompt(parseInt("Introduce un número: "));
      if (N <= 0) {
      alert("Debe ser un número positivo");
      }
      } while (N <= 0);
      //
      do {
      M = prompt(parseInt("Introduce un número mayor que: " + N + " : "));
      if (M <= 0) {
      alert("Debe introducir un número positivo");
      }
      else if (N >= M) {
      alert("Debe introducir un número mayor que " + N + " : ");
      }
      } while (M<= 0 || N >=M);

      // Múltiplos
      for (let i = 1; i <= M; i++) {
      if (i % N == 0) {
      console.log(i);
      }
      }

      Eliminar