求C语言程序:求两个整数的最大公约数和最小公倍数。

如题所述

#include

int
maxf(int
m,int
n)/*最大公约数*/
{
int
i=1,t;
for(;i<=m&&i<=n;i++)
{
if(m%i==0&&n%i==0)
t=i;
}
return(t);
}
int
minf(int
m,int
n)/*最小公倍数*/
{
int
j;
if(m>=n)
j=m;
else
j=n;/*把m和n中值大的赋给j*/
for(;!(j%m==0&&j%n==0);j++);
return
j;
}
void
main()
{
int
a,b,max,min;
printf("enter
two
number
is:
");
scanf("%d%d",&a,&b);
max=maxf(a,b);
min=minf(a,b);
printf("最大公约数=%d,最小公倍数=%d\n",max,min);/*如果你用的是TC,就把汉子改为字母,如果用的是VC,那就不必改了*/
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-13
#include
void
main()
{
int
m,n,r,t;
printf
("请输入两个正整数m,n:");
scanf("%d%d",&m,&n);
if(n>m)
{
t=n;
n=m;
m=t;
}
r=m*n;
t=m%n;
while(t)
{
m=n;
n=t;
t=m%n;
}
printf("他们的最大公约数:%d
\n",n);
printf("他们的最小公倍数:%d
\n",r/n);
}
第2个回答  2019-07-10
用欧几里德辗转相除法:
#include
int
dy(int
a,
int
b)
//公约数
{
return
(!b)?
a
:
dy(b,
a
%
b);
}
int
db(int
a,
int
b)
//公倍数
{
return
a
*
b
/
dy(a,
b);
}
void
main()
{
int
a,
b;
scanf("%d
%d",
&a,
&b);
printf("最大公约数:%d\n最大公倍数%d\n",
dy(a,
b),
db(a,
b));
}
第3个回答  2019-07-09
#include<stdio.h>
int
main()
{
int
m,n,t,i;
scanf("%d%d",&m,&n);
if(m>n)
{
t=n;
n=m;
m=t;
}
for(i=m;i>=2;i--)
if(m%i==0&&n%i==0)
printf("%d,%d\n",i,m*n/i);
return
0;
}

C语言程序问题 求两个整数最大公约数和最小公倍数 求分析思路。谢谢
用(a,b)来表示a和b的最大公约数。有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c)。例:求 15750 与27216的最大公约数。解:∵27216=15750×1+11466 ∴(15750,27216)=(15750,11466)∵15750=11466×1+4284 ∴(15750,11466)=(11466,4284)∵11466=4284×2+2898 ...

C语言怎样求两个整数的最大公约数和最小公倍数
1、新建一个工程和.c文件 ,输入头文件和主函数。2、定义变量类型。3、接下来需要输入a和b。4、用一个if 语句去判断这两个数是否大于1。5、用while 语句去求得最大公倍数和最小公约数。6、输出最大公约数和最小公倍数。7、编译,运行得到最后的结果。

C语言函数编写,求两个整数的最大公约数和最小公倍数
编写该程序的整体思路:分别定义最大公约数函数和最小公倍数函数,然后再main函数里面调用它。C语言实现代码如下:include<stdio.h> include<math.h> int fun_gy(int,int); \/\/声明最大公约数函数 int fun_gb(int,int); \/\/声明最小公倍数函数 main(){ int a,b,gy,gb;printf("输入两个...

c语言编程:输入两个正整数,求最大公约数和最小公倍数
printf("它们的最大公约数为:%d\\n",n);printf("它们的最小公约数为:%d\\n",p\/n);return 0;} 方法二、\/\/穷举法解两个数的最大公约数和最小公倍数 void exp(int num1,int num2){ int x,y,i;x=num1;y=num2;int max=0;\/\/最大公约数 for(i=1;i<=num1;i++)if(num1%i==0...

C语言编程:输入两个正整数,输出其中最大公约数和最小公倍数。
printf("please input two number:\\n");scanf("%d%d",&num1,&num2);if(num1<num2){ temp = num1;num1 = num2;num2 = temp;} a = num1;b = num2;while(b!=0){ \/*利用辗除法,直到b为0为止*\/ temp = a%b;a=b;b=temp;} printf("gongyueshu:%d\\n",a);printf("...

用C程序编写:输出两个正整数m和n,求其最大公约数和最小公倍数。
我给楼主说下思路:先输入两个整数,然后判断两数的大小,用大的数对小的取模,然后小的数自减直到余数为0,这个时候小的数就是两数的最大公约数,然后将输入的两个数相乘再除以做大公约数,得到的结果就是最小公倍数

C语言如何求两个数的最大公约数和最小公倍数
int gcd(int a,int b) \/\/最大公约数 {int r;do {r=a%b;a=b;b=r;}while(r);return a;} int lcm(int a,int b) \/\/最小公倍数 {return a*b\/gcd(a,b);} int main() \/\/主函数 {int a,b;scanf("%d%d",&a,&b);printf("最大公约数=%d\\n",gcd(a,b));pri...

用c语言编程输入两个整数,求其最大公约数和最小公倍数
include"stdio.h"main(){ int m,n,t,h,a,b,q;printf("输入m,n的值:");scanf("%d%d",&m,&n);a=m;b=n;if (n>m) {t=m;m=n;n=t;}while (m%n!=0){ h=n;n=m%n;m=n;}a=a\/n;b=b\/n;q=a*b*n;printf("两数最大公约数为 %d,最小公倍数为 %d\\n",n...

[C语言]编程:输入两个正整数,求其最大公约数和最小公倍数
int m, n;int gcd, lcm;scanf("%d%d", &m, &n);gcd = m < n ? m : n;lcm = m > n ? m : n;do { if(m % gcd == 0 && n%gcd==0)break;gcd--;}while(1);do { if(lcm % m == 0 && lcm % n==0)break;lcm++;}while(1);printf("gcd=%d lcm=%d\\n"...

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;\/*...

相似回答