#include
using namespace std;
int main()
{
long long int n,m,a;
while (cin>>n>>m)
{
for (int i=1; i<=m&&i<=n; i++)
{
if(n%i==0&&m%i==0)
a=i;
}
if(n==0&&m==0)
break;
cout <<a<< endl;
}
}
你的作法是從1開始找到 min(m,n) 之間找到可以被m和n整除的數字
但是當m=n=1000000000時搜尋範圍過大,顯然這個方法會超時
請使用輾轉相除法來處理這個問題