Q:输入两个整数a,b,输出它们的最大公约数与最小公倍数。要求使用子函数。
S:
#include<stdio.h>
int maxC(int a,int b);//返回最大公约数
int minC(int a,int b);//返回最小公倍数
int main()
{
int a,b;
int max,min;
scanf("%d%d",&a,&b);
max=maxC(a,b);
min=minC(a,b);
printf("最大公约数=%d\n最小公倍数=%d\n",max,min);
return 0;
}
int maxC(int a,int b)
{
int temp;
int i;
int result;
if(a<b)//保证b比a小
{
temp=a;
a=b;
b=temp;
}
for(i=b;i>=1;i--)
{
if(b%i==0&&a%i==0)
{
result=i;
break;
}
}
return result;
}
int minC(int a,int b)
{
int temp;
int i;
int result;
if(a>b)//保证b比a大
{
temp=a;
a=b;
b=temp;
}
for(i=b;i<=a*b;i++)
{
if(i%b==0&&i%a==0)
{
result=i;
break;
}
}
return result;
}