求最大公约数。
(1)不会超过两者中的最小值;
(2)对于两者求余都是为0;
(3)由于最大公约数只有一个,所以当用for来循环的时候,只要等于最后一个就好。
AC:
#include<iostream> using namespace std; int main() { int n,m; while(cin>>n>>m) { int i,k,max=0; if (n>m) { k=n;n=m;m=k; } for(i=1;i<=n;i++) { if(n%i==0 && m%i==0) max=i;//只要等于最后一个就好; } cout<<max<<endl; } return 0; }
原文:http://www.cnblogs.com/jianrenguo/p/6536565.html