C语言:计算整数的最大公约数(函数)

Python018

C语言:计算整数的最大公约数(函数),第1张

已通过测试,望采纳

#include <stdio.h>

void input(int b[],int n)

int f(int a[],int n)

main()

{ int a[20],n,d

scanf("%d",&n)

input(a,n)

d=f(a,n)

printf("%d\n",d)

}

int f(int a[],int n) /* 计算n个整数的最大公约数的函数*/

{ int t

int i,flag=1

for(t=a[0]t--)

{ flag=1

for(i=0i<n&&flag==1i++)

{ if(a[i]%t==0)

flag=1

else

{ flag=0

break

}

}

if(flag==1)

goto m

}

m:

return t

}

void input(int b[],int n) /* 输入n个元素到一维数组*/

{ int i

for(i=0i<ni++)

scanf("%d",&b[i])

}

举个例吧,如4和6两个数,求它们的最大公约数和最小公倍数。利用短除法:2∟ 4   6            得2    3,那么最大公约数就是2,最小公倍数就是2×2×3=12。           、

关键要弄清最大公约数和最小公倍数的概念。

公约数,就是能是所给出的数共同小化,就像是将分数简化一样。那么使得他们简化的数的乘积就是最大公倍数;若在乘上最终简化的结果数就是最小公倍数。

如4和6可写成4/6,同时约去的只有2,那么2是最大公约数;约去后变为2/3,2×2×3=12,为最小公倍数。