在 C++ 中不使用遞迴或歐幾里得演算法求兩個數的最大公約數
如我們所知,最大公約數或最大公約數可以使用歐幾里得演算法輕鬆計算。但我們將在此探討如何不使用歐幾里得演算法或任何遞迴演算法來生成最大公約數或最大公約數。假設存在兩個數 16 和 24。兩個數的最大公約數為 8。
此方法很簡單。如果這兩個數中較大的那個能被較小的數整除,那麼它就是最大公約數,否則從(較小數 / 2)到 1,如果當前元素可以同時整除這兩個數,那麼它就是最大公約數。
示例
#include <iostream>
using namespace std;
int gcd(int a, int b) {
int min_num = min(a, b);
if (a % min_num == 0 && b % min_num == 0)
return min_num;
for (int i = min_num / 2; i >= 2; i--) {
if (a % i == 0 && b % i == 0)
return i;
}
return 1;
}
int main() {
int a = 16, b = 24;
cout << "HCF: "<< gcd(a, b);
}輸出
HCF: 8
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP