C++求最大公约数 两种方法

    科技2024-05-30  73

    第一种方法

    #include <iostream> using namespace std; int main() { int n1, n2; cout << "输入两个整数: "; cin >> n1 >> n2; //循环条件为 不相等 while(n1 != n2) { if(n1 > n2) //如果n1>n2,n1是大的数 n1 -= n2;//就n1-n2,赋值给n1 else//否则(n1<n2,n2是大的数) n2 -= n1;//n2-n1,赋值给n2 } //最大公约数的结果为n1 cout << "HCF = " << n1 << endl; system("pause"); return 0; }

    第二种方法

    #include <iostream> using namespace std; int main() { int n1, n2, hcf; cout << "输入两个整数: "; cin >> n1 >> n2; // 如果 n2 大于 n1 交换两个变量(保证n1是小的数) if ( n2 > n1) { //临时变量temp赋值为n2 int temp = n2; //n1的值赋值给n2 n2 = n1; //temp(n2)的值赋值给n1 n1 = temp; } //从1 到 n2(大的数),循环 for (int i = 1; i <= n2; ++i) { //如果 n1和n2 求余 循环体 都为 0 if (n1 % i == 0 && n2 % i ==0) { //则最大公约数 为这个循环体 hcf = i; } } //输出 cout << "HCF = " << hcf; system("pause"); return 0; }
    Processed: 0.010, SQL: 8