Run ID:149651
提交时间:2026-03-15 15:20:02
#include <iostream> #include <stack> using namespace std; stack<char> st; int main() { /* 求a,b的最大公约数: 分析:a,b的最大公约数最大可能是a和b中小的那个; 否则就是最靠近a,b中较小值的且能被a,b同时整除a,b的那个数 */ int a,b; cin>>a>>b; //确保a>b if (a > b) { int t = a; a = b; b = t; } //最大公因数是两个数中较小的那个 if (a % b == 0) { cout<<b; return 0; } //最大公因数同时小于a,b,则是同时整除a,b的最靠近b的那个 for (int i = b;i >= 1;i--) { if (a % i == 0 && b % i == 0) { cout<<i; return 0; } } cin>>a>>b; }