JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Валидатор не пускает
Oleh
27 уровень
  • 05.01.2019
  • 730просмотров
  • 7комментариев

Валидатор не пускает

Вопрос по задаче НОД
Java Core,  4 уровень,  8 лекция
Архивный


Давай найдем наибольший общий делитель (НОД). Для этого:

  1. Введи с клавиатуры 2 целых положительных числа.
  2. Выведи в консоли наибольший общий делитель.

Требования:
  • Программа должна считывать с клавиатуры 2 строки.
  • Программа должна выводить данные на экран.
  • Программа должна выводить на экран наибольший общий делитель (НОД) чисел, считанных с клавиатуры, и успешно завершаться.
....
package com.javarush.task.task14.task1420; import java.util.*; import java.io.*; /* НОД */ public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int a = Integer.parseInt(reader.readLine()); int a2 = Integer.parseInt(reader.readLine()); if (a <= 0 || a2 <= 0) throw new Exception(); ArrayList<Integer> list = new ArrayList<>(); for(int i=1;i<a;i++){ if(a%i==0){ list.add(i); } } int max1 = Collections.max(list); ArrayList<Integer> list2 = new ArrayList<>(); for(int i=1;i<a2;i++){ if(a2%i==0){ list2.add(i); } } int max2 = Collections.max(list2); if(max1==max2){ System.out.println(max1); } if(max1!=max2){ int dilnuk = 0; if(max1>max2){ dilnuk = max1; }else if (max2>max1){ dilnuk = max2; } while(true){ if(a%dilnuk==0 && a2%dilnuk==0){ System.out.println(dilnuk); break; } dilnuk = dilnuk -1; } } } }
0
Комментарии (7)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Oleh
Уровень 27
5 января 2019, 21:38решение
Ответ - добавить проверку если число 1. И вывод сделать не в Цикле, и не в If .
+2
Андрей Малыгин
Уровень 32
5 января 2019, 21:07
ну ты и понаписал, у меня 2 строчки
0
Oleh
Уровень 27
5 января 2019, 21:08
Главное работает)
0
Oleh
Уровень 27
5 января 2019, 21:09
Ошибку не понимаю только
0
Андрей Малыгин
Уровень 32
5 января 2019, 21:13
Введи числа 1 и 1
0
Андрей Малыгин
Уровень 32
5 января 2019, 21:16полезный
Любое число и единицу, понимаешь?
+1
Oleh
Уровень 27
5 января 2019, 21:27
Пофиксил, а дальше?
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush