欧基米得公式--减治
1 #include<stdlib.h> 2 #include<stdio.h> 3 void ojmd(int *a,int *b); 4 5 void ojmd_dg(int *a,int *b); 6 7 int main(void){ 8 int a=12; 9 int b=6; 10 ojmd(&a,&b); 11 12 a=12; 13 b=10; 14 ojmd_dg(&a,&b); 15 return 0; 16 } 17 18 void ojmd_dg(int *a,int *b){ 19 int r=*a%*b; 20 if(r==0){ 21 printf("%d\n",*b); 22 return ; 23 }else{ 24 ojmd(b,&r); 25 } 26 } 27 28 void ojmd(int *a,int *b){ 29 int r=*a%*b; 30 while(r!=0){ 31 *a=*b; 32 *b=r; 33 r=*a%*b; 34 } 35 printf("%d\n",*b); 36 }