c语言判断公因数的函数 c语言求公因数

C语言用函数求两个数的最大公因数和最小公倍数

#includestdio.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(mn){

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==0result%n==0){

break;

}

}

returnresult;

}

扩展资料

c语言求两个整数的最大公约数

#includestdio.h

#includestdlib.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;

}

求两个数最大公约数c语言

以下是求两个数最大公因数的C语言函数。

int gcd(int a,int b)

{return b?gcd(b,a%b):a;

}

c语言求最大公因数、最小公倍数,每一行代码是什么意思?注释出来

你是对原理不清楚吗?

这个求最大公因数的算法是欧几里得算法,其原理是gcd(a,b)=gcd(b,a%b),不断辗转相除,到最后一个数变成了0,那么gcd(a,0)=a,就求出了gcd。

例如:gcd(12,15)=gcd(15,12%15)=gcd(15,12)=gcd(12,15%12)=gcd(12,3)=gcd(3,12%3)=gcd(3,0)=3。

证明可以查阅相关资料,属于数论范畴,这里不赘述。

然后是最小公倍数,原理是lcm(a,b)=a*b/gcd(a,b),因为公因数被算了两遍,所以要除掉。

例如:lcm(12,15)=12*15/3=60。

所以代码的意思就是:

s = m * n; // 计算出两个数的乘积,稍后用于计算lcm

// 计算最大公因数

while (n != 0) // 判断是否到达 gcd(m, 0) 的情况

{

// 从 gcd(m, n) 变为 gcd(n, r),即 gcd(n, m % n)

r = m % n;

m = n;

n = r;

}

// 现在是 n = 0,所以 gcd(m, 0) = m

printf("GCD: %d\n", m);

// 计算 lcm,即原来两数的乘积 s 除以最大公因数 m

printf("LCM: %d\n\n", s / m);

希望对你有帮助,谢谢!

c语言 如何求ab两数的最大公因数?

第一步:比较两数大小

第二步:用大数除以小数取余,如果为零,则最大公因数为小数

第三步:循环

 {用大数(a)除以小数(b)减i++(i初值为0)取余,如果余数不为零,则用小数除以小数减i,为零则表示小数减i就是最大公因数,否则重新循环,结束循环的条件是i=小数(b)


网站题目:c语言判断公因数的函数 c语言求公因数
浏览地址:http://scyanting.com/article/dojeohe.html