穷举法
时间复杂度O(n)
int main(){
long m,n,min,i;
printf("请输入正整数m,n:");
scanf("%ld,%ld",&m,&n);
min=m>n?n:m;
for(i=min;i>0;i--){
if(m%i==0 && n%i==0){
break;
}
}
printf("(%ld,%ld)=%ld",m,n,i);
}
欧几里德算法
时间复杂度O(logn)
int main(){
long m,n,r;
printf("请输入正整数m,n:");
scanf("%ld,%ld",&m,&n);
r=m%n;
while(r!=0){
m=n;
n=r;
r=m%n;
}
printf("%ld",n);
}