c语言求两个数的最小公倍数
这样写:
#include
void
main()
{
int
m,n,i,r,temp;
printf("请输入第一个数的值:
");
scanf("%d",&m);
printf("请输入第二个数的值:
");
scanf("%d",&n);
if(n>m)
{
temp=m;
m=n;
n=temp;
}
i=n;
while(i%m!=0)
{
i=i+n;
}
printf("最小公倍数是:%d
\n",i);
r=m%n;
while(r!=0)
{
m=n;
n=r;
r=m%n;
}
printf("最大公约数是:%d
\n",n);
}
图:
‘贰’ C语言中,求两个数的最小公倍数,的“高效”算法是
这思路我自己想的,但是我也说不太明白,反正我知道怎么回事
1先判断大数%小数是不是0,是0那么大数就是最小公倍数
2不是的话,让大数%小数得到一个数,让小数%得到的数,如果得0
那么让大数*(小数/(大数%小数)),得到得数是最小公倍数
3如果2中小数%得到的这个数不等于0,那么恭喜你,这两个数的最小公倍数就是:大数*小数
4如果这两个数相等,那么,随便一个都是最小公倍数
纯手打,今天刚好做这个题,看到网上没什么答案,我就写写我的思路
C++语法如下:
int pd(int A,int B);
int main() {int i, k;goto C;
C: {
printf("第一个数:"); scanf("%d", &i);
printf("第二个数:"); scanf("%d", &k);
printf("这两个数的公倍数为:%d\n\n", pd(i, k));
goto C; }
return 0;
}
int pd(int A, int B) {
int P;
if (A > B) {
if (A%B == 0) { P = A; }
else if (B % (A%B) == 0) { P = A*(B / (A%B)); }
else { P = A*B; }
}
else if (B > A) {
if (B%A == 0) { P = B; }
else if (A % (B%A) == 0) { P = B*(A / (B%A)); }
else { P = B*A; }
}
else { P = A; }
return P;
}
‘叁’ 用C语言求两个数的最小公倍数!各位大神进来看一下下哈!
说实话,我还真看不懂你写的到底是什么。
#include <stdio.h>
void main()
{
int a,b,c;
int k,t;
printf("input two number:");
scanf("%d %d",&k,&t);
a = k;
b = t;
c = a%b;
while ( c>0 )
{
a = b;
b = c;
c = a%b;
}
a = k*t/b;
printf("最小公倍数为:%d\n",a);
}
‘肆’ c语言最小公倍数怎么求
【利用C语言求最小公倍数主要用到if
whie循环】
例子如下:
直接编译,程序输出结果中任意输入两个数,如5和8,然后按回车,结果如下图所示:
两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。
‘伍’ C语言编程中最小公倍数怎么求
思想:输入的两个数,大数m是小数n的倍数,那么大数m即为所求的最小公倍数;若大数m不能被小数n整除则需要寻找一个能同时被两数整除的自然数。
从大数m开始依次向后递增直到找到第一个能同时被两数整除的数为止,所以循环变量i的初值为寻找第一个能同时被两整数整除的自然数,并将其输出。需要注意的是,在找到第一个满足条件的i值后,循环没必要继续下去,所以用break来结束循环。
#include<stdio.h>
int main()
{
int m, n, temp, i;
printf("Input m & n:");
scanf("%d%d", &m, &n);
if(m<n) /*比较大小,使得m中存储大数,n中存储小数*/
{
temp = m;
m = n;
n = temp;
}
for(i=m; i>0; i++) /*从大数开始寻找满足条件的自然数*/
if(i%m==0 && i%n==0)
{/*输出满足条件的自然数并结束循环*/
printf("The LCW of %d and %d is: %d ", m, n, i);
break;
}
return 0;
}
(5)c语言求两个数的最小公倍数扩展阅读:
c语言书写规则:
1、一个说明或一个语句占一行。
2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
网络-c语言
‘陆’ c语言如何求最小公倍数
按照数学定义求。
最简单的 从较大数开始,一直累加出一个两个的共同倍数。
也可以先求最大公约数 然后用两个数的积除以最大公约数
intfunc(inta,intb)
{
intr;
for(r=a;;r++)
if(r%a==0&&r%b==0)break;
returnr;
}
‘柒’ 用C语言求两个数的最大公约数和最小公倍数
你可以编写一个程序,实现辗转相除法(欧几里得算法),来求得最大公约数,然后用两个数相乘再除以最大公约数来,得到最小公倍数。
#include
<stdio.h>
int
main()
{
int
a,
b,
c;
//a,
b就是M和N,c是余数
int
ta,
tb;
//用来记录a,b的临时值
int
maxgys,mingbs;
printf("请输入两个数:
");
scanf("%d%d",&a,&b);
ta
=
a;
tb
=
b;
if(ta
>
tb)
{ta
=
b;
tb
=
a;}
c
=
tb
%
ta;
while(c!=
0)
{
tb
=
ta;
//辗转相除的过程
ta
=
c;
c
=
tb
%
ta;
}
printf("%d和%d的最大公约数是:
%d\n",
a,
b,
ta);
printf("%d和%d的最小公倍数是:
%d\n",
a,
b,
a
*
b
/
ta);
return
0;
}
‘捌’ C语言求两个数的最大公约数和最小公倍数
#include
#include
int
main()
{
int
a,b;
int
i,c;
printf("请输入两个正整数:");
scanf("%d%d",&a,&b);
c=(a>b)?b:a;
for(i=c;i>=1;i--)
{
if(a%i==0&&b%i==0)
{printf("最大公约数为:%d\n",i);
printf("最小公倍数为:%d\n",(a/i)*(b/i)*i);break
;}
}
return
0;
}
‘玖’ c语言如何求最小公倍数和最大公约数
解题步骤:
1、求最大公约数
对两个正整数a,b如果能在区间[a,0]或[b,0]内能找到一个整数temp能同时被a和b所整除,则temp即为最大公约数。
2、求最小公倍数
对两个正整数a,b,如果若干个a之和或b之和能被b所整除或能被a所整除,则该和数即为所求的最小公倍数。
//穷举法求两数的最大公约数
int divisor(int a,int b)
{
int temp;//定义义整型变量
temp=(a>b)?b:a;//采种条件运算表达式求出两个数中的最小值
while(temp>0){
if(a%temp==0&&b%temp==0)//只要找到一个数能同时被a,b所整除,则中止循环
break;
temp--;//如不满足if条件则变量自减,直到能被a,b所整除
}
return temp;//返回满足条件的数到主调函数处
}
//穷举法求两数的最小公倍数
int multiple(int a,int b)
{
int p,q,temp;
p=(a>b)?a:b;//求两个数中的最大值
q=(a>b)?b:a;//求两个数中的最小值
temp=p;//最大值赋给p为变量自增作准备
while(1){//利用循环语句来求满足条件的数值
if(p%q==0)
break;//只要找到变量的和数能被a或b所整除,则中止循环
p+=temp;//如果条件不满足则变量自身相加
}
return p;
}
(9)c语言求两个数的最小公倍数扩展阅读:
用穷举法解题时,就是按照某种方式列举问题答案的过程。针对问题的数据类型而言,常用的列举方法一有如下三种:
(1)顺序列举是指答案范围内的各种情况很容易与自然数对应甚至就是自然数,可以按自然数的变化顺序去列举。
(2)排列列举有时答案的数据形式是一组数的排列,列举出所有答案所在范围内的排列,为排列列举。
(3)组合列举当答案的数据形式为一些元素的组合时,往往需要用组合列举。组合是无序的。
例子如下:在公元五世纪我国数学家张丘建在其《算经》一书中提出了“百鸡问题”:
“鸡翁一值钱5,鸡母一值钱3,鸡雏三值钱1。百钱买百鸡,问鸡翁、母、雏各几何?”这个数学问题的数学方程可列出如下:
Cock+Hen+Chick=100
Cock*5+Hen*3+Chick/3=100
显然这是个不定方程,适用于穷举法求解。依次取Cock值域中的一个值,然后求其他两个数,满足条件就是解。
该问题的C语言程序算法如下:
int Cock,Hen,Chick;/*定义公鸡,母鸡,鸡雏三个变量*/
Cock=0;
while(Cock<=19)/*公鸡最多不可能大于19*/
{Hen=0;
whlie(Hen<=33)/*母鸡最多不可能大于33*/
{Chick=100-Cock-Hen;
if(Cock*15+Hen*9+Chick==300)/*为了方便,将数量放大三倍比较*/
printf(" 公鸡=%d 母鸡=%d 雏鸡=%d",Cock,Hen,Chick);
Hen=Hen+1;
}
Cock=Cock+1;
}
‘拾’ C语言程序:求两个数的最大公约数和最小公倍数。
#include<iostream>
using
namespace
std;
int
f(int
p,int
q);
int
g(int
u,int
v,int
w);
int
main()
{
int
x,y,m,n;
cout<<"请输入两个整数"<<endl;
cin>>x>>y;
m=f(x,y);
n=g(x,y,m);
cout<<"这两个数的最大公约数是"<<m<<"\n这两个数的最小公倍数是"<<n<<endl;
}
int
f(int
p,int
q)
{
int
r;
p>q?r=q:r=p;
//找两个数中最小的最小的
for(;p%r!=0||q%r!=0;r--);
return
r;
}
int
g(int
u,int
v,int
w)
//w是最大公约数
{
int
g;
g=u*v/w;
return
g;
}