наибольший общий делитель java



Автор 1 2 задал вопрос в разделе Другие языки и технологии

Вычислить наибольший общий делитель двух натуральных чисел с++ и получил лучший ответ

Ответ от United People[гуру]
#include <iostream>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
while (a>0 && b>0)
{
if (a>b) a = a % b;
else b = b % a;
}
cout<<a+b;
return 0;
}

Ответ от Sasha Programmer[гуру]
Вот видео, где объясняется решение этой задачи: ()
===========================
#include <iostream>
using namespace std;
int main(){
int a, b, min, max, res, gcd, lcm;
cout << "Enter two numbers: ";
if(!(cin >> a >> b)){
cout << "You entered some wrong numbers.";
system("pause >> void");
return -1;
}
if(a > b) {
min = b;
max = a;
} else {
min = a;
max = b;
}
do{
res = max - min;
if(res < min){
max = min;
min = res;
} else max = res;
}while(min != max);
gcd = min;
cout << "GCD of " << a << " and " << b << " is " << gcd << endl;
lcm = abs(a * b)/ gcd;
cout << "LCM of " << a << " and " << b << " is " << lcm;
system("pause >> void");
return 0;
}

Ответ от ?[гуру]
#include "stdafx.h"
#include <iostream>
using namespace std;
int nod(int x, int y){
?int n, r;
?(x < y? n = x : n = y);
?r = 1;
?for (int i = 1; i <= n; i++)
??if ((x % i == 0)&&(y % i == 0))
???r = i;
?return r;
}
int main(){
?int x, y;
?cout << "X = ";
?cin >> x;
?cout << "Y = ";
?cin >> y;
?cout << nod(x, y);
?cin.get();
?cin.get();
?return 0;
}

Ответ от Андрей Дмитриев[активный]
a*&; b*&
А если наименьший.. . и не делитель... :
алгоритм таков:
находим все простые числа до а/b деленных на 2(больше нам не нужно)
int n[1000] // простые числа
int j;
for int i, 1, a/2{
b==1;
for int i1,1,j{
?(i%n[i1]=0){b==0}
}
?b{j++;n[j]==i}
}
находи короч простые числа состава а/б:
int i;
int m[100000]
While (a=1)! {
for int i2,1,j {
?(a%n[i2]=0){m[i]==n[i2]; i++; break }
}
}
А потом почленно сравниваем и одинаковые удаляем а потом перемножаем.. . дальше писать лень.. . разберешся

Ответ от Николай Веселуха[гуру]
#include <iostream>
using namespace std;
int nod(int a, int b) { return b? nod(b, a % b) : a; }
int main() {
cout << " a & b: "; int a, b; cin >> a >> b;
if (a < 1 || b < 1) exit(1);
cout << "nod: " << nod(a, b) << endl;
cin.sync(); cin.get();
}

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Вычислить наибольший общий делитель двух натуральных чисел с++
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*