C语言实现求多个数字的最大公约数和最小公倍数
求N个数的最大公约数和最小公倍数。用C语言实现程序解决问题。
1.程序风格良好(使用自定义注释模板)
2.提供友好的输入输出,并进行输入数据的正确性验证。
该程序含有两个子函数,分别是求两个数的最大公约数和最小公倍数的,当需要求多个数字时只需进行嵌套调用就可,程序虽小,也是心血。
#include<stdio.h>
int calculate(int a,int b)//求最大公约数
{
int temp;
if(a<b)
{
temp=a;
a=b;
b=temp;
}
while(b!=0)
{
temp=a%b;
a=b;
b=temp;
}
return (a);
}
int multiple (int a,int b) //求最小公倍数
{
int calculate (int a,int b);
int temp,s;
temp=calculate(a,b);
s=a*b/temp;
return (s);
}
int main()
{
int n,i,q,r[10],x,y,p,z,w;
printf("请输入需要计算的数字个数:");
scanf("%d",&n);
printf("\n请输入需要计算的数字:");
for(i=0;i<n;i++)
{
scanf("%d",&r[i]);
}
x=r[0];
for(i=0;i<n;i++)
{
y=r[i];
if(x>y)
{
z=x;
x=y;
y=z;
}
p=calculate(x,y);
}
x=r[0];
for(i=1;i<n;i++)
{
y=r[i];
if(x<y)
{
z=x;
x=y;
y=z;
}
q=multiple(x,y);
}
printf("最大公约数为:%d\n",p);
printf("最小公倍数为:%d",q);
return 0;
}
特此附上水货流程图一张(勿喷)