问题描述:
求两个整数的最大公因数
解决思路:
辗转求余,复杂度为logn,要写严谨点就是判断输入数据是否合法
算法实现:
#include<stdio.h>
int gcf(unsigned int m,unsigned int n);
int main() {
int m,n;
while(scanf("%d%d",&m,&n)!=EOF){
if(m<n)
printf("%d\n",gcf(n,m));
else
printf("%d\n",gcf(m,n));
}
return 0;
}
int gcf(unsigned int m, unsigned int n) {
int result;
while(n>0){
result = m % n;
m = n;
n = result;
}
return m;
}