原文: https://www.programiz.com/cpp-programming/examples/hcf-gcd

有关使用循环和决策语句来计算两个整数(正整数和负整数)的 GCD 的不同方法的示例。

要理解此示例,您应该了解以下 C++ 编程主题:


可以完美除以两个整数的最大整数称为这两个数字的 GCD 或 HCF。


示例 1:使用while循环查找 GCD

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int n1, n2;
  6. cout << "Enter two numbers: ";
  7. cin >> n1 >> n2;
  8. while(n1 != n2)
  9. {
  10. if(n1 > n2)
  11. n1 -= n2;
  12. else
  13. n2 -= n1;
  14. }
  15. cout << "HCF = " << n1;
  16. return 0;
  17. }

输出

  1. Enter two numbers: 78
  2. 52
  3. HCF = 26

在上面的程序中,从较大的数字中减去较小的数字,并存储该数字以代替较大的数字。

继续此过程,直到两个数字相等,即 HCF。


示例:2.使用for循环查找 HCF/GCD

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. int n1, n2, hcf;
  5. cout << "Enter two numbers: ";
  6. cin >> n1 >> n2;
  7. // Swapping variables n1 and n2 if n2 is greater than n1.
  8. if ( n2 > n1) {
  9. int temp = n2;
  10. n2 = n1;
  11. n1 = temp;
  12. }
  13. for (int i = 1; i <= n2; ++i) {
  14. if (n1 % i == 0 && n2 % i ==0) {
  15. hcf = i;
  16. }
  17. }
  18. cout << "HCF = " << hcf;
  19. return 0;
  20. }

该程序的逻辑很简单。

在该程序中,n1n2之间的小整数存储在n2中。 然后,循环从i = 1迭代到i <= n2,并且在每次迭代中,i的值增加 1。

如果两个数字都可以被i整除,则该数字将存储在变量hcf中。

迭代完成后,HCF 将存储在变量hcf中。