題目內容:求兩個正整數的最大公約數。
輸入描述:輸入數據含有不多於50對的數據,每對數據由兩個正整數(0<n1,n2<232)組成。
輸出描述:對於每組數據n1和n2,計算最大公約數,每個計算結果應單獨占一行。
題目分析:求兩數的最大公約數,可采用歐幾里得方法:只要兩數不相等,就反復用大數減小數,直到相等為止,此相等的數就是兩數的最大公約數。
參考代碼:
#include <iostream> #include <fstream> using namespace std; int gcd(int,int); int main(int argc,char * argv[]) { int x,y; while(cin>>x>>y) { cout<<gcd(x,y)<<endl; } system("pause"); return 0; } int gcd(int x,int y) { while(x!=y) { if(x>y) x=x-y; else y=y-x; } return x; }
效果如圖: