题目描述
求两个正整数a 和 b的最大公约数。
要求使用c++ class编写程序。
// ConsoleApplication28.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class Integer {
private:
int w;
public:
//构造函数
Integer(int num);
Integer(const Integer &z);
//计算当前Integer 和 b之间的最大公约数
int gcd(Integer b);
};
Integer:: Integer(int num):w(num)
{
}
Integer::Integer(const Integer &z)
{
w = z.w;
}
int Integer:: gcd(Integer b)
{
int x = (w < b.w?w: b.w);
int y = 0;
for (int i = x; i <= x,i>0; i--)
{
int m = w % i;
int n = b.w% i;
if (m==0&&n==0)
{
y = i;
break;
}
}
return y;
}
int main() {
int a, b;
cin >> a >> b;
if (a >= 1 && b <= 10000)
{
Integer A(a);
Integer B(b);
cout << A.gcd(B) << endl;
return 0;
}
}