Другие языки программирования и технологии

С++ Составьте программу определения наибольшего общего делителя двух натуральных чисел .

#include <iostream>
using namespace std;
int nod1(int a, int b) { return b? nod1(b, a % b) : a; }
int nod2(int a, int b) {
while (b) b ^= a ^= b ^= a %= b;
return a;
}
int nod3(int a, int b) {
while (a != b) a > b? a -= b : b -= a;
return a;
}
int nod4(int a, int b) {
int tmp;
while (b) {
tmp = a % b;
a = b;
b = tmp;
}
return abs(a);
}
int nod5(int a, int b) {
while (a && b) a >= b? a %= b : b %= a;
return a | b;
}
int nod6(int a, int b) {
if (!b) return a | !a;
while (true) {
if (!(a %= b)) return b;
if (!(b %= a)) return a;
}
}
template <int a, int b> struct nod {
private:
const static int v1 = b, v2 = a % b;
typedef nod<static_cast<int>(v1), static_cast<int>(v2)> next;
public:
const static int value = next::value;
};
template <int a> struct nod<a, 0> { const static int value = a; };
int main() {
cout << " a & b: "; int a, b; cin >> a >> b;
if (a < 1 || b < 1) exit(1);
char n[] = " nod: ";
cout << n << nod1(a, b) << endl
<< n << nod2(a, b) << endl
<< n << nod3(a, b) << endl
<< n << nod4(a, b) << endl
<< n << nod5(a, b) << endl
<< n << nod6(a, b) << endl
<< n << nod<105, 70>::value << endl;
cin.sync(); cin.get();
}
Ернар Ахтазин
Ернар Ахтазин
54 591
Лучший ответ
Екатерина Игнатова Однако.. . шестью вариантами.. .
"Раззудись, плечо, размахнись, рука... " ;)
cppforum.ucoz.com/publ/programmirovanie/nakhozhdenie_nod_naibolshego_obshhego_delitelja_v_c/1-1-0-4
Артем Шкурин
Артем Шкурин
55 413
с этим вопросом лучше обратитесь в форум программистов - cyberforum.ru . Там вам может быть и помогут, только если будете писать не так - "сделайте за меня программу" , а так - "объясните как это сделать".
#include "stdafx.h"
#include < iostream >
using namespace std;
int main() // или типа того; я без компилятора
{
int a, b, c;
cout << "Vvedite a: ";
cin >> a;
cout << "Vvedite b: ";
cin >> b;
for (int i = 2; i <= a; i++) if (a % i == 0 & b % i == 0) c = i;
cout << "NOD = " << c;
return 0;
}

Похожие вопросы