Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
2 / 1 / 1
Регистрация: 24.09.2017
Сообщений: 34

Как выводить ближайший делитель если тот что есть не подходит

04.10.2017, 10:36. Показов 1545. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа которая определяет делится ли а на b . Если да она должна выводить делится, если нет она должна вывести ближайшее к b число которое делится на а. Что нужно прописать в данной программе что бы она выполняла условия?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream> 
 
using namespace std;
 
int main()
{
    setlocale(0,"");
int a,b;
cout << "введи число" << endl;
cin >> a;
cout << "введи число" << endl;
cin >> b;
  if (a%b==0) {
        cout << "делится" << endl;
        return 0; 
    }
   else
   for (int c=b;c<=a;c++) {
    if (a%c==0) {
    cout << "ближайший делитель:"<< c <<  endl;
   }
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.10.2017, 10:36
Ответы с готовыми решениями:

Как сделать проверку, и если значение не подходит - выводить сообщение с ошибкой?
как сделать проверку что бы если значения не подходит то выводило сообщение с ошибкой и после нажатия Enter программа закрывалась? 13...

Выводить только тот элемент, у которого сумма значений функций Y1(xk), Y2(xk), Y3(xk), Y4(xk) больше чем у других трех элементов. Т.е. если , то вы-в
ЗДРАВСТВУЙТЕ помогите с задачей: выводить только тот элемент, у которого сумма значений функций Y1(xk), Y2(xk), Y3(xk), Y4(xk) больше чем у...

Быстро найти ближайший целый делитель
Привет, делаю перебором на больших числах слишком много времени мать его отнимает( Иногда по 5 минут жду результата. Есть ли какой то более...

7
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,928
04.10.2017, 11:09
Ближайший это не обязательно больше b, может быть и меньше.
0
2 / 1 / 1
Регистрация: 24.09.2017
Сообщений: 34
04.10.2017, 11:20  [ТС]
Я не знаю как это сделать потому и спросил
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,928
04.10.2017, 12:10
Ну например, перебирать не сам делитель а разницу проверяемого числа от введенного и проверять в обе стороны
C
1
2
3
4
5
6
7
8
9
for(delta = 1; delta<b && b+delta<a; delta++){
  if( delta < b ){
    if( a%(b-delta) == 0 )return (b-delta);
  }
  if( b+delta<a ){
    if( a%(b+delta) == 0 )return (b+delta);
  }
}
return 0;
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
04.10.2017, 12:33
C++
1
2
3
4
d = b%a;
x = b/a;
if (d < a/2) c = x*a;
else c = (x+1)*a;
Добавлено через 1 минуту
Можно и так:
C++
1
2
3
4
d = b%a;
x = b/a;
if (d > a/2) x++;
c = x*a;
Добавлено через 1 минуту
Первоначально ошибся, но исправился...
3
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,928
04.10.2017, 12:51
Да, такой вариант лучше простого перебора.
0
2 / 1 / 1
Регистрация: 24.09.2017
Сообщений: 34
05.10.2017, 17:47  [ТС]
можете написать полный код в int main()
{ .... }
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
05.10.2017, 18:53
Цитата Сообщение от Melior_est Посмотреть сообщение
можете написать полный код в int main()
Если вы ко мне, то я - нет. Скушно, знаете ли...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.10.2017, 18:53
Помогаю со студенческими работами здесь

Сделать так, что если человек авторизован выводить одну форму, если нет - другую.
Надо сделать так, что если человек авторизован выводить одну форму, если нет другую, подскажите как это можно реализовать? Мой вариант,...

Как провести Интернет если ближайший провайдер в 30 км ?
Привет всем !!! У меня вот такая проблема, каким способом провести интеренет к копьютеру если провайдер от меня находиться в 30 км ?...

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

Заменить соседние элементы, если они находятся в отношении родитель-ближайший потомок. Объясните, как работает
Помогите объяснить программу. Программу взяла с форума. Необходимо заменить соседние элементы,если они находятся в отношении...

Боковой блок или меню, который прикрепляется к браузеру когда тот подходит
На картинке нагляднее


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru