Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 13.07.2022
Сообщений: 7
1

Наибольший натуральный делитель

13.07.2022, 15:51. Показов 1914. Ответов 8
Метки java (Все метки)

Author24 — интернет-сервис помощи студентам
Найдите наибольший большой натуральный делитель. На вход подаётся одно число. Делитель должен быть отличен от самого числа. Пример ввода: 16
Вывод: 8
тут выводит числа: 2 4 8 (а нужно только 8)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void main(String[] args) {
        System.out.println("hello world");
        int number;
        Scanner scanner = new Scanner(System.in);
        number = scanner.nextInt();
        scanner.close();
 
        int count = 2;
 
        while (count < number ){
            if (number % count ==0){
                System.out.println(count);
            }
            count++;
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.07.2022, 15:51
Ответы с готовыми решениями:

Вычислить наибольший общий делитель чисел А и Б
Чёт мозги ваще не варят, а завтра уже сдать нада(( Помогите, плизз!! Замечание: в первой задаче...

Найти наибольший общий делитель двух целых чисел
Знаю что есть задачи на эту тему, но нужного для себя не нашла. Не могу сообразить как сделать...

Дано натуральное число N и вещественный параметр P<N Найти наибольший делитель N ,меньший P.
Дано натуральное число N и вещественный параметр P&lt;N Найти наибольший делитель N ,меньший P.

Задача: найти Наибольший Общий Делитель из двух чисел, к примеру 150 и 450
Задача: найти Наибольший Общий Делитель из двух чисел, к примеру 150 и 450. Где ошибка в коде,...

8
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
13.07.2022, 17:55 2
ну, видимо, надо с введенного числа-1 начать
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,651
Записей в блоге: 13
13.07.2022, 18:55 3
Лучший ответ Сообщение было отмечено Tviks7771lp как решение

Решение

xoraxax, необязательно. Можно и так:

Java
1
2
3
4
5
6
7
8
9
   int count = 2;
   while (count*count <= number )
   {
            if (number % count ==0)
            {
                System.out.println(number/count);
            }
            count++;
   }
0
802 / 565 / 74
Регистрация: 10.03.2012
Сообщений: 4,009
13.07.2022, 19:00 4
Catstail, В таком решении лишнее число выводиться
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,651
Записей в блоге: 13
13.07.2022, 19:37 5
Whitecolor, и не одно! Надо так:

Java
1
2
3
4
5
6
7
8
9
10
   int count = 2;
   while (count*count <= number )
   {
            if (number % count ==0)
            {
                System.out.println(number/count);
                break;
            }
            count++;
   }
1
802 / 565 / 74
Регистрация: 10.03.2012
Сообщений: 4,009
13.07.2022, 20:50 6
Catstail, Наверное эту задачу проще не через while решать, не совсем очевидное решение
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,651
Записей в блоге: 13
13.07.2022, 20:55 7
Whitecolor, совершенно очевидное... Что тут непонятно-то?
0
802 / 565 / 74
Регистрация: 10.03.2012
Сообщений: 4,009
13.07.2022, 21:10 8
Catstail, Что переменную count надо умножать на себя же
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36606 / 20334 / 4221
Регистрация: 12.02.2012
Сообщений: 33,651
Записей в блоге: 13
14.07.2022, 07:07 9
Лучший ответ Сообщение было отмечено xoraxax как решение

Решение

Whitecolor, а, голубчик... Не "умножать на себя"... Предположим, что ты нашел делитель number:

https://www.cyberforum.ru/cgi-bin/latex.cgi?number=count*k

Здесь k - целое. Но тогда или

https://www.cyberforum.ru/cgi-bin/latex.cgi?count <= \sqrt{number}

или

https://www.cyberforum.ru/cgi-bin/latex.cgi?k <= \sqrt{number}

Почему? Предположим противное, т.е.

https://www.cyberforum.ru/cgi-bin/latex.cgi?k > \sqrt{number}

и

https://www.cyberforum.ru/cgi-bin/latex.cgi?count > \sqrt{number}

Перемножаем два последних неравенства и получаем:

https://www.cyberforum.ru/cgi-bin/latex.cgi?k*count > \sqrt{number} * \sqrt{number} = number

Получаем противоречие. Мы доказали что если число представляется произведением двух целых, то хотя бы одно из них не должно превышать корень из этого числа (или, что то же самое) - квадрат одного из сомножителей не может превышать исходное число.

Поэтому для поиска всех делителей целого достаточно проверить последовательность 2,3,...k при k2<=n.

А девятиклассники этого не знают, и проверяют в лучшем случае диапазон 2,3,... n//2. Самые "выдающиеся" - 2,3,...n

Пусть мы ищем делители числа, не превышающего 100. При правильном подходе достаточно проверить 10 значений (2,3,...10). Девятиклассник будет проверять (2,3,...50). А самый тупой "продвинутый" проверит все числа до 100. т.е. в 10 раз больше.

С математикой нужно дружить!
3
14.07.2022, 07:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.07.2022, 07:07
Помогаю со студенческими работами здесь

Найти наибольший общий делитель трех заданных чисел А, B, C, пользуясь формулой НОД
Определить метод, вычисляющий наибольший общий делитель двух целых чисел, и с помощью этого метода...

Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1
Помогите пожалуйста решить задачу

Вывести наибольший общий делитель и наименьшее общее кратное
Нужно найти НОК и НОД рандомных чисел в массиве import java.util.Scanner; public class...

Даны два целых числа, найти их наибольший общий делитель
Вот пытался решить задачу : int n1=4; int n2=8; int max=0; for(int i=1;i&lt;Math.max(n1,...

Наибольший общий делитель элементов массива, превосходящих натуральное число M
Составьте программу вычисления наибольшего общего делителя элементов массива A(N), превосходящих...

Составить программу, которая бы для целых чисел N и M находила их наибольший общий делитель
написать код в eclipse.Наибольшим общим делителем (НОД) двух целых чисел m и n называется их общий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru