#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;
}
Другие языки программирования и технологии
Вычислить наибольший общий делитель двух натуральных чисел с++
#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;
}
#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;
}
#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();
}
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();
}
Вот видео, где объясняется решение этой задачи: (https://www.youtube.com/watch?v=o6O2PJN-8_c&list=UUu8GWtWppaY2FSB4RigaO9g)
===========================
#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 <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;
}
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 }
}
}
А потом почленно сравниваем и одинаковые удаляем а потом перемножаем.. . дальше писать лень.. . разберешся
А если наименьший.. . и не делитель... :
алгоритм таков:
находим все простые числа до а/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 }
}
}
А потом почленно сравниваем и одинаковые удаляем а потом перемножаем.. . дальше писать лень.. . разберешся
Похожие вопросы
- С++ Составьте программу определения наибольшего общего делителя двух натуральных чисел .
- Нахождение наибольшего общего делителя НОД.
- как решить через abc pascal задачу "Дано натуральное число n. Получить все простые делители этого числа"
- Дано два натуральных числа а и б . Написать программу, которая будет находить и распечатывать все общие делители этих чи
- Дано натуральное число N. Напечатать все его делители.
- Даны натуральное число n, действительные числа a1,.,an. Вычислить: |a1|,|a1+a2|,.,|a1+.+an|; delphi
- информатика. вычислите факториал натурального числа n.
- Помогите написать программу Дано натуральное число n. Вычислить сумму всех k(k+1), k меняется от 1 до n.
- Требуется написать программу, которая из цифр двух натуральных чисел создает наименьшее возможное число, сохраняя при эт
- 1. Получить сумму двух длинных натуральных чисел.