Печать общих делителей введенных положительных целых чисел - PullRequest
0 голосов
/ 06 октября 2019

Мне нужно вывести общие делители между двумя положительными целыми числами, которые были введены. Они должны быть напечатаны в порядке возрастания. Если они относительно простые, необходимо напечатать «1». Код, который я имею здесь, далеко не правильный. Я действительно запутался, как правильно использовать циклы, сохраняя их в порядке возрастания.

Пример ввода:

Целое число a: 8 Целое число b: 12

Пример вывода:

Общие делители 8 и 12:

1

2

4

8 и 12 не являются относительно простыми.

Альтернативный вход:

Целое число a: 8 Целое число b: 9

Общие делители 8 и 9:

1

8 и9 относительно простые.

import java.util.Scanner;

 public class RelativelyPrime {
      public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);  

 int num1 = scnr.nextInt();
  int num2 = scnr.nextInt();
  System.out.println("Common divisors of " + num1 + " and " + num2 + ":");

  int div1 = 0;
  int div2 = 0;
  int same = 0;
  for (int i=1;i<=num1;i++) {
    while (div1 <= num1) {
      div1 = num1/i;
    }
    while (div2 <= num2) {
      div2 = num2/i;
    }
    if (div1 == div2) {
      div1 += same;
      System.out.println(same);
      System.out.println(num1 + " and " + num2 + " are not relatively prime.");
    }
    if (div1 != div2) {
      System.out.println(1);
      System.out.println(num1 + " and " + num2 + " are relatively prime.");
    }
    }
}
}

Ответы [ 2 ]

1 голос
/ 06 октября 2019

Вы можете попробовать что-то простое, как показано ниже:

import java.util.Scanner;

 public class RelativelyPrime {
      public static void main(String[] args) {
          Scanner scnr = new Scanner(System.in);  
          int num1 = scnr.nextInt();
          int num2 = scnr.nextInt();
          System.out.println("Common divisors of " + num1 + " and " + num2 + ":");
          for(int i = 1; i<= Math.min(num1,num2); i++){
            if(num1%i==0 && num2%i==0) {
               System.out.println(i);
            }
          } 
       }
}
0 голосов
/ 06 октября 2019
Scanner input = new Scanner (System.in);
num1 = input.nextInt();
num2 = input.nextInt();
List<Integer> list = new ArrayList<>();

for(int i=0; i<=Math.min(num1,num2);i++){
 if(num1%i==0 && num2%i==0){
 list.add(i);
}
  }

System.out.println("Divisors:");

for(int a : list){
 System.out.println(a);  }

if(list.size()<2){
 System.out.print("Not Relatively Prime");  }

else { System.out.print("Relatively Prime");}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...