}
int f3(int m,int n) { int i=2,j=0,h=0; int a[N],b[N],c[N]; while(i } else { i++; w3++; } } j++; a[j]=n; i=1; int u; u=j; while(i<=j) { -6- //printf(\ i++; w3++; } //printf(\i=2; j=0; while(i } else { i++; w3++; } } j++; b[j]=m; i=1; while(i<=j) { -7- //printf(\ i++; w3++; } int k=1; for(i=1;i<=j;i++) { for(k=1;k<=u;k++) { if(b[i]==a[k]) { w3++; h++; c[h]=a[k];//printf(\ for(k=1;k } } } k=1; while(h>1) { k=k*c[h]*c[h-1]; h=h-2; w3++; -8- } if(h==1) { k=k*c[1]; return k; } else return k; } int main(void) { int m,n; printf(\请输入m,n :\ scanf(\ int k; k=f1(m,n); printf(\方法一最大公约数为: %d\\n\ k=f2(m,n); printf(\方法二最大公约数为: %d\\n\ k=f3(m,n); printf(\方法三最大公约数为: %d\\n\ printf(\ printf(\计数器显示结果:\\n\\n\\n\ printf(\方法一: %d \\n\ printf(\方法二: %d \\n\ printf(\方法三: %d \\n\ printf(\ float a,i; -9- clock_t start,finish; double usetime; i=0; start= clock(); while (i<1000000) { f1(m,n); i++; } finish=clock(); usetime= finish-start; printf(\方法一用时%.f*10^(-6) i=0; start= clock(); while (i<1000000) { f2(m,n); i++; } finish=clock(); usetime= finish-start; printf(\方法二用时%.f*10^(-6) i=0; start= clock(); while (i<1000000) { f3(m,n); 豪秒\\n\豪秒\\n\ usetime); usetime); -10-