大佬们求指点,求两个数的最大公因数和最小公倍数怎么用c语言编写出来啊

我是这么编的,但为什么结果求不出来啊??

三种方法都给你
#include <stdio.h>
#include <stdlib.h>

int main()//穷举法
{
int a,b,n,i;
printf("请输入两个数字:");
scanf("%d%d",&a,&b);
if(a>=b)
{
n = b;
}
else if(a<b)
{
n = a;
}
for(i=n;i>=1;i--)
{
if(a%i==0&&b%i==0)
{
printf("最大公约数为:%d",i);
break;
}
}

#include <stdio.h>
#include <stdlib.h>

int Gcd(int a,int b)
{

while(a!=b)
{
if(a>b)
{
a=a-b;
}
else if(a<b)
{
b=b-a;
}
}
}

int main()
{
int a,b,r;

printf("请输入两个数:");

scanf("%d %d",&a,&b);

r=Gcd(a,b);

printf("最大公约数为%d",r);

}

#include <stdio.h>
#include <math.h>

int main()//欧几里得算法
{
int a,b,x;

printf("请输入两个数字:");

scanf("%d%d",&a,&b);

x = Gcd(a,b);

printf("最大公约数为:%d",x);

return 0;
}
int Gcd(int m,int n)
{
int r;

r = m%n;

while(r!=0)
{

m = n;

n = r;

r = m%n;
}

return n;
}追答

第一 else可以去掉
第二 y等于0怎么办
第三 max等于x%y 这是求余。。。

温馨提示:内容为网友见解,仅供参考
无其他回答

C语言 求输入a、b,求这两个数的最大公约数和最小公倍数~求助~
根据数学定义,要求a,b两个数的最大公约数,只需要找到能够同时整除a和b的最大整数即可,而最小公倍数为a*b\/最大公约数。对此,编写代码如下:int gcd(int a, int b){ int m = a>b?b:a; int r; for(r = m; r >0; r --) if(a%r==0 && b%r == 0) break...

C语言用函数求两个数的最大公因数和最小公倍数
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...

C#编写程序,输入两个正整数,求它们的最大公约数和最小公倍数。
a = Int32.Parse(Console.ReadLine());Console.WriteLine("第二个整数");b = Int32.Parse(Console.ReadLine());c = FindMaxCfd(a, b);d = FindMinCfd(a, b);Console.WriteLine("最大公因数="+c);Console.WriteLine("最小公倍数=" + d);} 运行结果 ...

C语言编程:输入两个正整数,输出其中最大公约数和最小公倍数。
printf("gongbeishu:%d\\n",num1*num2\/a);}

C语言中求两个数的最大公因数,最小公倍数
当m1=5,n1=2时,因为n1!=0,这个while(n1!=0)为真,执行循环体:yu=5%2=1;m1=2;n1=1;当m1=2,n1=1时,因为n1!=0,这个while(n1!=0)为真,执行循环体:yu=2%1=0;m1=1;n1=0;因为n1=0了,退出循环。最大公约数等于m1,等于1。

求两个数的最大公因数和最小公倍数c语言
两个数的最大公因数和最小公倍数的区别:1、运算性质不同:最大公因数具有反身性,即GCD(a,b)=GCD(b,a),而最小公倍数不具有反身性。2、研究目的不同:最大公因数是研究如何快速求出两个数的最大公因数,而最小公倍数是研究如何快速求出两个数的最小公倍数。3、求解方法不同:最...

...求出任意给定的两个整数的最大公约数和最小公倍数,
include<stdio.h>int fMaxMin(int a,int b,int *c){int r; *c=a*b; while(r=a%b) {a=b; b=r; } *c\/=b; return a;}int main(){int a,b,c; scanf("%d%d",&a,&b); printf("最大公因数=%d\\n",fMaxMin(a,b,&c)); printf("最小公倍数=%d\\n",c); return...

2个数的最大公约数和最小公倍数 C语言怎么求?
输入两个正整数m和n,求其最大公约数和最小公倍数.<1> 用辗转相除法求最大公约数 算法描述:m对n求余为a,若a不等于0 则 m <- n,n <- a,继续求余 否则 n 为最大公约数 <2> 最小公倍数 = 两个数的积 \/ 最大公约数 include int main(){ int m,n;int m_cup,n_cup,res;\/*...

c语言,求两个非负整数的最大公约数和最小公倍数
两个整数的最大公因子可用于计算两数的最小公倍数,或分数化简成最简分数。两个整数的最大公因子和最小公倍数中存在分配律:gcd(a, lcm(b, c)) = lcm(gcd(a, b), gcd(a, c))lcm(a, gcd(b, c)) = gcd(lcm(a, b), lcm(a, c))在坐标里,将点(0, 0)和(a, b)连起来,...

编程实现输入两个整数,输出其最大公约数和最小公倍数。
举例:输入两个正整数m和n,输出它们的最小公倍数和最大公约数。代码:include <stdio.h> int main(void){ int gcd, lcm, m, n;int repeat, ri;scanf("%d", &repeat);for(ri = 1; ri <= repeat; ri++){ scanf("%d", &m);scanf("%d", &n);if(m <= 0 || n <= 0){...

相似回答