#include<stdio.h>
intfun(intm,intn);
intfun1(intm,intn);
voidmain(){
intm,n;
do{
scanf("%d%d",&m,&n);
}while(m<=0||n<=0);
printf("%d,%d最大公约数是%d\n",m,n,fun(m,n));
printf("%d,%d最小公倍数是%d\n",m,n,fun1(m,n));
}
intfun(intm,intn){
intr,t;
if(m<n){
t=m;m=n;n=t;
}
while(n!=0){//辗转相除法
r=m%n;
m=n;
n=r;
}
returnm;
}
intfun1(intm,intn){//暴力破解法
intresult;
for(result=1;;result++){
if(result%m==0&&result%n==0){
break;
}
}
returnresult;
}
扩展资料
c语言求两个整数的最大公约数
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inttmp,a,b;
printf("请输入两个整数:\n");
scanf("%d%d",&a,&b);
while(a%b!=0)
{
tmp=a%b;//取余
a=b;//交换a,b可避免a比b小
b=tmp;
}
printf("%d\n",b);
return0;
}
定义一个求GCD的函数或求LCM的函数,利用它们的关系在主函数中直接输出另一个的结果。举例如下:
#include "stdio.h"
int mylcm(int a,int b){
int t;
for(t=a;t%b;t+=a);
return t;
}
int main(int argc,char *argv[]){
int a,b,t;
printf("Please enter a & b(int a,b>0)...\n");
if(scanf("%d%d",&a,&b)!=2 || a<1 || b<1){//限>0,否则退出
printf("Input error, exit...\n");
return 0;
}
printf("The GCD of %d & %d is %d\n",a,b,(t=mylcm(a,b))/(a<b ? a : b));
printf("The LCM of %d & %d is %d\n",a,b,t);
return 0;
}
2015-01-02
着 代码能出结果?
a,b;
temp=a%b;
while(temp){
a=b;
b=temp;
temp=a%/b;
}