当前位置:首页 » 编程语言 » c语言最小公倍数和最大公约数

c语言最小公倍数和最大公约数

发布时间: 2022-10-03 23:27:50

c语言如何求最大公约数和最小公倍数

#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);

}

(1)c语言最小公倍数和最大公约数扩展阅读

算法思想

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

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

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

Ⅱ 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语言函数编写,求两个整数的最大公约数和最小公倍数

编写该程序的整体思路:分别定义最大公约数函数和最小公倍数函数,然后再main函数里面调用它。C语言实现代码如下:

#include<stdio.h>

#include<math.h>

intfun_gy(int,int); //声明最大公约数函数

intfun_gb(int,int); //声明最小公倍数函数

main()

{

inta,b,gy,gb;

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

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

gy=fun_gy(a,b); //调用最大公约数函数

gb=fun_gb(a,b); //调用最小公倍数函数

printf("最大公约数是:%d 最小公倍数是:%d ",gy,gb);

}

intfun_gy(intx,inty)

{

intz,i;

if(x>y)

z=sqrt(y);

else

z=sqrt(x);

for(i=z;i>=1;i--)

{

if(x%i==0&&y%i==0)

break;

}

returni;

}

intfun_gb(intx,inty)

{

intz,i;

z=x*y;

for(i=x;i<=z;i++)

{

if(i%x==0&&i%y==0)

break;

}

returni;

}

程序运行结果:

(3)c语言最小公倍数和最大公约数扩展阅读:

这里涉及到了最大公约数和最小公倍数的计算方法:

我们知道两个整数的最小公倍数等于他们的乘积除以他们的最大公约数。所以关键还是最大公约数的计算。

辗转相除法(求最大公约数):

假设求a,b的最大公约数,则:

(1)a除以b取余得c,若c=0,则b即为两数的最大公约数,输出,结束。

(2)若c != 0,则将b赋给a,c赋给b再返回上一步操作,继续执行。

例如,求30和98的最大公约数,过程如下:

90%30 = 8;

30%8 = 6;

8%6 = 2;

6%2 = 0;

所以最大公约数为2。

Ⅳ c语言中如何求两个数的最大公约数和最小公倍数

直接编写两个函数就行了!!
#include
int
yueshu(int
m,int
n)
{
int
t;
if(m>n)
t=m,m=n,n=t;
//替换,保证m为较大的数
while(n!=0)
{
t=m%n;
m=n;
n=t;
}
return
m;
}
int
beishu(int
m,int
n)
{
return
m*n/yueshu(m,n);
//最小公倍数即为两个数的乘积除以最大公约数
}
main()
{
int
m,n,s,t;
while(scanf("%d%d",&m,&n))
{
s=yueshu(m,n);
printf("%d\n",s);
t=beishu(m,n);
printf("%d\n",t);
}
}

Ⅳ 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);

}}

(5)c语言最小公倍数和最大公约数扩展阅读

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;//此函数将辗转相除的过程以递归的形式呈现,简化程序属于常规套路。

}

Ⅵ c语言函数调用求最大公约数和最小公倍数

#include&lt;stdio.h&gt;

int a;

int _Y(int x,int y);

int main()

{

int a,b,c,d;

printf(“请输入数字:”);

scanf("%d,%d",&c,&d);//此处注意在输出的时候数字之间要打都好,不然输出结果错误

b=_Y(c,d);

a=c*d/b;

printf(“最大公约数为:%d ”,b);

printf(“最小公倍数为:%d ”,a);

return 0;

}

int _Y(int x,int y)

{

int e;

if(x&lt;y)

{

e=x;

x=y;

y=e;

}

while((e=x%y)!=0)

{

x=y;

y=e;

}

return(y);

}

总结:while循环是先判断后循环 ,而do–while循环是先循环后判断。

网络——while(循环语句及英文单词)

Ⅶ 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&gt;b)?b:a;//采种条件运算表达式求出两个数中的最小值

while(temp&gt;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&gt;b)?a:b;//求两个数中的最大值

q=(a&gt;b)?b:a;//求两个数中的最小值

temp=p;//最大值赋给p为变量自增作准备

while(1){//利用循环语句来求满足条件的数值

if(p%q==0)

break;//只要找到变量的和数能被a或b所整除,则中止循环

p+=temp;//如果条件不满足则变量自身相加

}

return p;

}

(7)c语言最小公倍数和最大公约数扩展阅读:

while使用示例

C++

int a=NULL;

while(a&lt;10)

{

a++;//自加

if(a&gt;5)//不等while退出循环,直接判断循环

{

break;//跳出循环

}

}

结果:结束后a的值为6。

javascript

下面的例子定义了一个循环程序,这个循环程序的参数i的起始值为0。该程序会反复运行,直到i大于10为止。i的步进值为1。

&lt;html&gt;

&lt;body&gt;

&lt;script type="text/javascript"&gt;

var i=0

while(i&lt;=10)

{document.write("The number is"+i);

document.write("&lt;br/&gt;");

i=i+1;}

&lt;/script&gt;

&lt;/body&gt;

&lt;/html&gt;

结果

The number is0

The number is1

The number is2

The number is3

The number is4

The number is5

The number is6

The number is7

The number is8

The number is9

The number is10

网络——while

Ⅷ C语言中 用函数调用求最大公约数和最小公倍数

#include<stdio.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 (m<n)
{
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;
}

Ⅸ 用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语言编求最大公约数和最小公倍数的程序

就发第一个吧,没分没动力...
因为2个题目是有联系的,向1楼说的那样
#include
<stdio.h>
main()
{
int
a,b,c,i;
printf("求2个数的最大公约数\n");
printf("输入两个数用空格隔开,再回车:\n");
scanf("%d",&a);
scanf("%d",&b);
for(i=1;i<=a||i<=b;i++)
{
if(a%i==0&&b%i==0)
c=i;
}
printf("最大公约数是:%d\n",c);
return
0;
}
补上
#include
<stdio.h>
main()
{
int
a,b,c,i;
printf("求2个数的最小公倍数\n");
printf("输入两个数用空格隔开,再回车:\n");
scanf("%d",&a);
scanf("%d",&b);
for(i=1;i<=a||i<=b;i++)
{
if(a%i==0&&b%i==0)
c=i;
}
printf("最小公倍数是:%d\n",a*b/c);
return
0;
}

热点内容
安卓上哪里下大型游戏 发布:2024-12-23 15:10:58 浏览:186
明日之后目前适用于什么配置 发布:2024-12-23 14:56:09 浏览:51
php全角半角 发布:2024-12-23 14:55:17 浏览:826
手机上传助手 发布:2024-12-23 14:55:14 浏览:730
什么样的主机配置吃鸡开全效 发布:2024-12-23 14:55:13 浏览:828
安卓我的世界114版本有什么 发布:2024-12-23 14:42:17 浏览:708
vbox源码 发布:2024-12-23 14:41:32 浏览:275
诗经是怎么存储 发布:2024-12-23 14:41:29 浏览:657
屏蔽视频广告脚本 发布:2024-12-23 14:41:24 浏览:417
php解析pdf 发布:2024-12-23 14:40:01 浏览:816