当前位置:首页 » 编程软件 » 编程求最大公约数和最小公倍数

编程求最大公约数和最小公倍数

发布时间: 2022-04-16 12:50:12

1. 编程实现输入两个整数,输出其最大公约数和最小公倍数。

举例:输入两个正整数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)

{ printf("m <= 0 or n <= 0");

continue;

}

for(gcd=m; gcd >= 1; gcd--){

if(m % gcd == 0 && n % gcd == 0) break;

}

lcm = m * n / gcd;

printf("%d, %d ",lcm, m, n, gcd, m, n);

}

}

运行效果:

输入输出示例:括号内为说明

输入:

3(repeat=3)

37(m=3,n=7)

244(m=24,n=4)

2418(m=24,n=18)

输出:

21,1.

24,4.

72,6.

(1)编程求最大公约数和最小公倍数扩展阅读:

辗转相除法:

#include <stdio.h>

int main()

{

int m,n;

scanf("%d %d",&a,&b); //输入两个整数

int num1,num2,c; //num1,num2作为计算时的变量,c作为中间变量

if(a>=b) {num1=a; num2=b; }

else {num1=b; num2=a; }//通过比较对num1和num2赋值,便于计算

while(num2>0){

c=num1%num2;

num1=num2;

num2=c;}//辗转相除,num2=0时,num1=最大公因数

printf("最大公因数:%d ",num1);

printf("最小公倍数:%d "m*n/num1);

return 0;

}

2. c语言编程求输入两个数的最大公约数和最小公倍数,怎么做

输入两个正整数m和n,求其最大公约数和最小公倍数.用辗转相除法求最大公约数 算法描述:m对n求余为a,若a不等于0 则 m 0)
{
m_cup = m;

#include<stdio.h>

voidmain()

{

intm,n,m1,n1,t;

printf("请输入两个数(用空格隔开):");

scanf("%d%d",&m,&n);

if(n>m)

{

t=m;

m=n;

n=t;

}

m1=m;

n1=n;

while(n!=0)

{

t=m%n;

m=n;

n=t;

}

printf("%d和%d的最大公约数是:%d ",m1,n1,m);

printf("最小公倍数是:%d ",m1*n1/m);

}

3. 请用C语言编程求两个数的最大公约数和最小公倍数

一楼的回答不对啊,你求的是最小公约数而不是最小公倍数,两个整数的最小公约数永远是1,应该这样改:
main()
{
int
x,y,a,m,n,t;
printf("please
input
two
num
x,y\n");
scanf("%d,%d",&x,&y);
for(a=x<y?x:y;a>0;a--)
if(x%a==0&&y%a==0)
{
printf("x,y的最大公约数是
%d\n",a);
break;
}
m=x/a;
n=y/a;
t=a*m*n;
printf("x,y的最小公倍数是
%d\n",t);
}

4. c语言编程求最大公约数和最小公倍数

#include<stdio.h>
int
main()
{
int
m,n;
int
divisor,dividend,res;/*除数
被除数
余数*/
scanf("%d%d",&m,&n);
if(m>0&&n>0)
{
if(m>=n)
{
divisor=n;
dividend=m;
}
else
{
divisor=m;
dividend=n;
}
res=dividend%divisor;
while(res!=0)//循环体是三条语句,不加大括号循环只执行一条语句
{
dividend=divisor;
divisor=res;
res=dividend%divisor;
}
printf("%d",divisor);
}
else
printf("error!\n");
return
0;
}
两数相乘除以最大公约数就是最小公倍数

5. 编程,求最大公约数和最小公倍数

#include <stdio.h>

int main()

{

int a,b,c,m,t;

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

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

if(a<b)

{

t=a;

a=b;

b=t;

}

m=a*b;

c=a%b;

while(c!=0)

{

a=b;

b=c;

c=a%b;

}

printf("最大公约数是: %d ",b);

printf("最小公倍数是: %d ",m/b);

}

(5)编程求最大公约数和最小公倍数扩展阅读

算法思想

利用格式输入语句将输入的两个数分别赋给 a 和 b,然后判断 a 和 b 的关系,如果 a 小于 b,则利用中间变量 t 将其互换。

再利用辗转相除法求出最大公约数,进而求出最小公倍数。最后用格式输出语句将其输出。

#include<stdio.h>是在程序编译之前要处理的内容,称为编译预处理命令。编译预处理命令还有很多,它们都以“#”开头,并且不用分号结尾,所以是c语言的程序语句。

6. 编程求两个整数的最大公约数和最小公倍数

#include<stdio.h>

/*最大公约数*/
intGreatestCommonDivisor(intm,intn)
{
intr;
do
{
r=m%n;
m=n;
n=r;
}while(r!=0);
returnm;
}

/*最小公倍数*/
intLeastCommonMultiple(intm,intn)
{
returnm/GreatestCommonDivisor(m,n)*n;
}

intmain(void)
{
intm,n;
printf("请输入两个数字:");
scanf("%d%d",&m,&n);
printf("最大公约数是%d。 ",GreatestCommonDivisor(m,n));
printf("最小公倍数是%d。 ",LeastCommonMultiple(m,n));
return0;
}

7. c语言编程最大公约数最小公倍数

while(scanf("%d%d",&m,&n), m<0 || n<0); j=m; while(j/n!=0) //在这层循环中只有一条语句 j=j+m; 当j/n!=0的时候循环语句继续执行 j=j+m; //接下来我觉得程序有问题,比如说20与25代入程序:20/25=0,直接结束循环,输出 20,结果明显错误,那下一步求最小公倍数就更是错的了。 k=(m*n)/j; printf("最小公倍数是%d\n最大公约数是%d\n ",k,j); 第二道题: void main() { int p,r,n,m,temp; printf("请输入两个正整数n,m:"); scanf("%d,%d",&n,&m); if (n<m) //此步是将大数字赋值给m {temp=n; n=m; m=temp; } p=n*m; while (m!=0) {r=n%m; //小的数字和大数字取余结果必定是原来的小数字,大和小取余结果相当于减去 小的数 n=m; //这种求公约数原理就是利用求余来减少重复相减的次数,其实也就属于辗转相除法 m=r; //辗转相除法就是对于给定的两个数,用较大的数除以较小的数,若余数不为零,则将对余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两倍的最大公约数。

8. 用c语言编程输入两个整数,求其最大公约数和最小公倍数

#include"stdio.h"
main()
{
intm,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,q);
}

9. c语言编程:输入两个正整数,求最大公约数和最小公倍数

#include

voidmain(){

inta,b,n1,n2,t;

while(true)

{

printf("任意输入两个正整数: ");

scanf("%d%d",&n1,&n2);

if(n1

{

t=n1;

n1=n2;

n2=t;

}

a=n1;

b=n2;

while(b!=0){/*利用辗除法,直到b为0为止*/

t=a%b;

a=b;

b=t;

}

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

printf("最小公倍数为:%d ",n1*n2/a);

}}

(9)编程求最大公约数和最小公倍数扩展阅读

C语言求最大公约数辗转相除法

#include<stdio.h>

intgcd(intm,intn);//将辗转相除的过程封装为函数,使主函数结构清晰。

intmain(void)

{

inta,b;

while(~scanf("%d%d",&a,&b)){//多组数据输入时的方式之一与while(scanf("%d%d",&a,&b)!=EOF)用途相同

printf("%d ",gcd(a,b));

return0;

}

intgcd(intm,intn)

{

returnn?gcd(n,m%n):m;//此函数将辗转相除的过程以递归的形式呈现,简化程序属于常规套路。

}

10. [C语言]编程:输入两个正整数,求其最大公约数和最小公倍数

程序如下:
main(){
int a,b,r,gcd,lcm;
printf("请输入两个正整数:");
scanf("%d%d",&a,%b);
while(r=a%b){
a=b;
b=r;
}
gcd=b;
lcm=a*b/gcd;
printf("gcd=%d,lcm=%d\n",gcd,lcm);
}
就是这样。
有什么问题请留言。

热点内容
我的世界服务器水桶搭建 发布:2025-03-18 02:01:21 浏览:332
微信存储到sd卡 发布:2025-03-18 01:34:29 浏览:968
eclipse的自动编译 发布:2025-03-18 01:34:29 浏览:367
可以上传视频网站 发布:2025-03-18 01:29:17 浏览:932
mysql密码忘记了怎么 发布:2025-03-18 01:23:00 浏览:858
java与oracle 发布:2025-03-18 01:18:05 浏览:705
怎么给win7电脑文件加密 发布:2025-03-18 01:10:41 浏览:989
python生成随机数 发布:2025-03-18 01:10:40 浏览:95
手机存储卡怎么设置 发布:2025-03-18 01:04:26 浏览:213
背算法好处 发布:2025-03-18 01:02:18 浏览:57