#include<stdio.h>
#include<stdlib.h>
int HCF(int x,int y);//定义最大公约数函数
int LCM(int p,int q);//定义最小公倍数函数
int main()
{
int a,b,hcf,lcm;
scanf("%d%d",&a,&b);//输入两个整数
hcf=HCF(a,b);//调用最大公约数函数
lcm=LCM(a,b);//调用最小公倍数函数
printf("HCF is%d LCM is%d\n",hcf,lcm);//输出最大公约数和最小公倍数
system("pause");
return 0;
}
int sum;//定义外部变量sum
//最大公约数函数
int HCF(int x,int y)
{
int i,k,m,n;
sum=1;
k=x>y?y:x;
i=2;
while(i<=k){
m=x%i;
n=y%i;
if(m==0&&n==0){
sum*=i;
x/=i;
y/=i;
i=2;
}
else
i++;
}
return sum;
}
//最小公倍数函数
int LCM(int p,int q)
{
int lc;
lc=p*q/sum;
return lc;
}
用法:
1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。
格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。
要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。
2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。
printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。
其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。
#include "stdio.h"
int mygcd(int a,int b){
int r;
while(b){
r=a%b;
a=b;
b=r;
}
return a;
}
int mylcm(int x,int y){
return x/mygcd(x,y)*y;
}
int main(int argv,char *argc[]){
int m,n;
printf("Input m & n(int m,n>0)...\n");
if(scanf("%d%d",&m,&n)!=2 || m<1 || n<1){
printf("Input error, exit...\n");
return 0;
}
printf("\nThe GCD of %d & %d is %d\n",m,n,mygcd(m,n));
printf("The LCM of %d & %d is %d\n",m,n,mylcm(m,n));
return 0;
}
运行样例:
#include
//求最大公约数函数
int gcd(int a,int b)
{
int temp,r;
int v;
if(a {temp=a; a=b; b=temp;} //将大数放在a中,小数放在b
v=a*b;
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
return b;
}
//求最小公倍数函数
int lcm(int a,int b)
{
return (a*b)/gcd(a,b);
}
int main()
{
int x,y;
scanf("%d%d",&x,&y);
if(x<=0 || y<=0){
printf("输入有误!\n");
return -1;
}
printf("%d 与 %d的最大公约数为: %d\n",x,y,gcd(x,y));
printf("%d 与 %d的最小公倍数为: %d\n",x,y,lcm(x,y));
return 0;
}
//示例运行结果
F:\c_work>a.exe
24 36
24 与 36的最大公约数为: 12
24 与 36的最小公倍数为: 72
F:\c_work>a.exe
1 8
1 与 8的最大公约数为: 1
1 与 8的最小公倍数为: 8