Проблема с С++.

компьютеры программирование

int main()
{
int a,b,c;
cin>>a>>b;
c=a>b?a:b;
while ((c%a!=0)&&(c%b!=0));
{
c++;
}
cout<<c<<endl;
}
есть такая вот небольшая программка для нахождения НОД
выдает максимальное из 2+1
в чем ошибка?

Примечание:
неправильно написал, не нод, а НОК,
а нахождение нод я уже сделал:
int main()
{
int a,b;
cin>>a>>b;
do {
if (a>b) {
a-=b;
}
else
{
b-=a;
}
cout<<a<<endl;
}

Примечание:
Jesterok,
всё то же самое.

Примечание:
Артёмка,
знаю, но там нужно небольшие числа вводить.
Тем более хочу сделать по 2 варианта НОД и НОК: программный и математический.

Примечание:
>Замени && на ||
ну ё-маё!
надо ж было так лоханутся!
Ответы:
Ошибка в том, что эта программа никак не может находить НОД двух чисел. НОД(a, b) <= min (a, b), а в твоей хитрой программе НОД(a, b) >= max(a, b). Используй алгоритм Евклида - он простой и быстрый.
У вас лишняя точка с запятой в строке с while. Уберите и все будет как надо :)
Вот так примерно выглядит нахождение НОД:
int main() {
 int a, b, c;
 cin >> a >> b;
 while (b) {
   c = a % b;
   a = b;
   b = c;
 }
 cout << a << endl;
}
Jesterok,
кроме точки с запятой нужно заменить
c++; на c--;
А ну тогда, он прав, нужно убрать точку с запятой.
А вообще HOK(a, b) = a * b / НОД(a, b)
Замени && на ||


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.