按照数学定义求。
创新互联于2013年开始,先为沁源等服务建站,沁源等地企业,进行企业商务咨询服务。为沁源企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
最简单的 从较大数开始,一直累加出一个两个的共同倍数。
也可以先求最大公约数 然后用两个数的积除以最大公约数
int func(int a, int b)
{
int r;
for( r=a; ; r++)
if(r%a==0 r%b==0) break;
return r;
}
c语言最小公倍数:
【利用C语言求最小公倍数主要用到ifwhie循环】例子:直接编译,程序输出结果中任意输入两个数,如5和8,然后按回车,两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。
含义
最小公倍数的适用范围:分数的加减法,中国剩余定理(正确的题在最小公倍数内有解,有唯一的解)。因为,素数是不能被1和自身数以外的其它数整除的数;素数X的N次方,是只能被X的N及以下次方,1和自身数整除。所以,给最小公倍数下一个定义:S个数的最小公倍数,为这S个数中所含素因子的最高次方之间的乘积。
1、对于输入的两个正整数m和n每次输入的大小顺序可能不同,为了使程序具有一般性,首先对整数所m和n进行大小排序,规定变量m中存储大数、变量n中存储小数。
C语言
2、输入的两个数,大数m是小数n的倍数,那么大数m即为所求的最小公倍数;若大数m不能被小数n整除则需要寻找一个能同时被两数整除的自然数。
从大数m开始依次向后递增直到找到第一个能同时被两数整除的数为止,所以循环变量i的初值为寻找第一个能同时被两整数整除的自然数,并将其输出。需要注意的是,在找到第一个满足条件的i值后,循环没必要继续下去,所以用break来结束循环。
3、在上面的分析过程中没有提到循环变量的终止条件,因i的最大值不能确定,像这种终止条件不确定的情况如何来表示?方法有两种,第一,可以把判定条件表示成循环变量满足的基本条件,如本例终止条件可表示成i0;第二,终止条件省略不写,利用循环体中的语句结束循环,如在找到第一个满足条件的自然数时利用break语句结束循环。
程序
【利用C语言求最小公倍数主要用到if
whie循环】
例子如下:
直接编译,程序输出结果中任意输入两个数,如5和8,然后按回车,结果如下图所示:
两个或多个整数公有的倍数叫做它们的公倍数,其中除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
(nm)
{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
(nm)
{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;
}
#includestdio.h
int gcd(int m, int n);
int lcd(int m, int n);
int main()
{
int a, b;
printf("输入两个正整数:");
scanf("%d%d", a, b);
printf("%d 和 %d 最大公约数为%d\n", a, b, gcd(a, b));
printf("最小公倍数为:%d\n", lcd(a, b));
}
int gcd(int m, int n)
{
int t;
if (mn)
{
t = m;
m = n;
n = t;
}
while (n != 0)
{
t = m%n;
m = n;
n = t;
}
return m;
}
int lcd(int m, int n)
{
int t;
t = m*n / gcd(m, n);
return t;
}