当前位置:首页 » 编程语言 » 计算一个数的公倍数c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

计算一个数的公倍数c语言

发布时间: 2023-08-18 05:14:50

A. c语言求最大公约数和最小公倍数

c语言求最大公约数和最小公倍数,回答如下:

在做C语言相关练习的时候,会遇见比较经典的一道题型,就是求最大公约数或者最小公倍数。那么先普及一下什么是最大公约数和最大公倍数:

最大公约数:指能够整除多个整数的最大正整数。例如8和12的最大公约数为4。

最小公倍数:两个或多个整数最小的公共倍数。例如6和24的最小公倍数为24。

2.辗转相除法

辗转相除法是用来求最大公约数的,同时最小公倍数满足这样一条数学性质:两数之积除以最大公约数即为最小公倍数.所以用辗转相除法是可以间接求最小公倍数的。

辗转相除法的大概思路:用两数相除,如果余数为零即为所求,如果余数不为零,上空渗笑一轮相除所得的余数为除数,同时上一轮的除数现在成为被斗含除数,直到余数为零不再相除,此时的除数即为所求。

B. 如何用C语言求最小公倍数。。。

主要是辗转相除法。
方法一、不设函数
#include
<stdio.h>
int
main
()
{int
p,r,n,m,temp;
printf("please
enter
two
positive
integer
numbers
n,m:");
scanf("%d
%d",&n,&m);
if
(n<m)
{temp=n;
n=m;
m=temp;
//把大数放在n中,
小数放在m中
}
p=n*m;
//先将n和m的乘积保存在p中,
以便求最小公倍数时用
while
(m!=0)
//求n和m的最大公约数
{r=n%m;
n=m;
m=r;
}
printf("HCF=%d\n",n);
printf("LCD=%d\n",p/n);
//
p是原来两个整数的乘积
return
0;
}
方法二、调用函数
#include
<stdio.h>
int
main
()
{int
p,r,n,m,temp;
printf("please
enter
two
positive
integer
numbers
n,m:");
scanf("%d
%d",&n,&m);
if
(n<m)
{temp=n;
n=m;
m=temp;
//把大数放在n中,
小数放在m中
}
p=n*m;
//先将n和m的乘积保存在p中,
以便求最小公倍数时用
while
(m!=0)
//求n和m的最大公约数
{r=n%m;
n=m;
m=r;
}
printf("HCF=%d\n",n);
printf("LCD=%d\n",p/n);
//
p是原来两个整数的乘积
return
0;
}

C. C语言编程,求最小公倍数。

1、首先介绍一下求最小公倍数的经典方法:

辗转相除法
有两整数a和b:
①a%b得余数c
②若c=0,则b即为两数的最大公约数
③若c≠0,则a=b,b=c,再回去执行①
a*b除以最大公约数等于最小公倍数


2、因此原问题也化为最小公倍数和最大公约数一起求了。程序的算法如下:

#include<stdio.h>


int lowest_common_multiple(int m,int n);

int main()

{

int m,n,c;


printf("请输入m的值: ");

scanf("%d",&m);

printf("请输入n的值: ");

scanf("%d",&n);

c=lowest_common_multiple( m, n);


printf("请输出最小公倍数c的值: ");

printf("%d ",c);


return 0;

}


int lowest_common_multiple(int m,int n)

{

int remainder,m1,n1;


m1=m;

n1=n;


while (n != 0) {

remainder = m % n;

m = n;

n = remainder;

}


//printf("输出最大公约数m: %d ", m); //此时的m为最大公约数


return m1*n1/m;

}

3、程序的输出如下:


4、此题注释的哪一个是输出最大公约数的。