三个数的最大公约数算法,C语言的

130 2024-04-22 09:13

一、三个数的最大公约数算法,C语言的

第一种方法: x,y,z三个数,先找出最小的,比如x; 再i=x;while(x%i!=0||y%i!=0||z%i!=0) {i--;} 最后求出的i,就是了。 第二种方法: 定义子函数int PubShu(int m,int n){int r;while(n!=0) {r=m%n;m=n;n=r;}} 其中m>n; 先x,y调用子函数求出最大公约数a; 在a,z调用子函数求出最大公约数b;即可。这样可以么

二、编程求两个数的最大公约数和最小公倍数

这题基本没有错误,但是在求最大公约数的时候,如果两个数互质,那么他们的最大公约数就是1,所以i的循环条件是i>=1

然后就是注意你定义的输入格式,需要使用逗号进行分隔,不是使用空格

代码注释给出修改位置

#include<stdio.h>

void main()

{

int i,j,n,m,max,min;

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

if(n>m) i=m,j=n;

else i=n,j=m;

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

{

if(m%i==0&&n%i==0)

{max=i;break;}

}

for(;j<=n*m;j++)

{

if(j%m==0&&j%n==0)

{min=j;break;}

}

printf(%d,%d\n,max,min);

}运行过程截图:

三、C语言中求最大公约数的函数

#include

stdio.h

int

main()

{

int

d1,d2,r;

printf(输入两数:);

scanf(%d

%d,&d1,&d2);

do

{

r=d1%d2;

d1=d2;d2=r;

}while(d2!=0);

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

}

//递归法

#include

stdio.h

int

fun(int

d1,int

d2)

{

if(d2!=0)

return

fun(d2,d1%d2);

else

return

d1;

}

int

main()

{

int

d1,d2;

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

scanf(%d

%d,&d1,&d2);

printf(最大公约数是:%d,fun(d1,d2));

}

四、试编程,输入两个整数,求最大公约数和最小公倍数

代码如下:

#include <stdio.h>

int gys(int m,int n)

{int a,b,c;

if(m>n)

{a=m;

b=n;

}

else

{a=n;

b=m;

}

while(b)

{c=b;

b=a%b;

a=c;

}

return c;

}

main()

{

int x,y;

char c='y';

while(c=='y')

{

printf(input two numbers:);

scanf(%d%d,&x,&y);

printf(zui da gong yue shu :%d\n,gys(x,y));

printf(zui xiao gong bei shu :%d\n,x*y/gys(x,y));

printf(continue? y/n:);

scanf(%s,&c);

printf(\n\n);

}

return 0;

}

五、从键盘上输入两个整数,输出其中最大公约数。c语言编程实现

#include

void main() /*主程序开始*/

{

int aa,bb,a,b,c,t;

printf(请输入要求最大公约数和最小公倍数的两个整数:\n);

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

aa=a;

bb=b;

if(a{ t=a; a=b; b=t; } c=a%b; while(c!=0) { a=b; b=c; c=a%b; } printf(这两个数的最大公约数为:%d\n,b); printf(这两个数的最小公倍数为:%d\n,aa*bb/b); }

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片