当前位置:首页 » 编程语言 » 有关最大公约数的c语言题目
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

有关最大公约数的c语言题目

发布时间: 2023-07-06 06:27:49

c语言题目 递归计算两个正整数的最大公约数

#include<stdio.h>
void swap(int *m,int *n){
int t;
if(m < n){
t = n;
n = m;
m = t;
}
}
int f(int m,int n){
if(m%n == 0)return n;
else
return f(n,m%n);
}
int main(){
int p = 0,m = 0,n = 0;
printf("请按照由大到小的顺序输入两个整数,用空格隔开:\n");
scanf("%d%d",&m,&n);
swap(m,n);
p = f(m,n);
printf("两个数的最大公约数是:%d\n",p);
return 0;
}

② 用C语言计算三个数的最大公约数

用C语言计算三个数的最大公约数的方法如下:

准备材料:Visual Studio 2019、电脑

1、首先打开Visual Studio,新建一个Win32控制台程序,


③ c语言求两个数的最大公约数

思路:求两个数的最大公约数使用辗转相除法。
辗转相除法,
又名欧几里德算法(Euclidean
algorithm)乃求两个正整数之最大公因子的算法。原理:两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。
参考代码:
#include <stdio.h>
int main()
{
int x,y,z;
scanf("%d%d",&x,&y);
while(x!=0)
{
z=x%y;
x=y;
y=z;
}
printf("%d\n",z);
return 0;
}
/*
运行结果:
6 27
3
*/

④ 如何用C语言求两个数的最大公约数的三种算法

1、相减法

#include&lt;stdio.h&gt;

int main()

{

int a,b;

int c=0;//计数器

while(1)//循环判断的作用

{

printf("输入两个数字求最大公约数:");

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

while(a!=b)

{

if(a&gt;b)

a=a-b;

else

b=b-a;

c++;

}

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

printf("%d ",c);

}

return 0;

}

运行效果:

2、辗转相除法:

#include&lt;stdio.h&gt;

int a,b,temp;

int Division(){

printf("请输入两个数(a,b): ");

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

if(a&lt;b){

temp=a;

a=b;

b=temp;

}

while(a%b!=0){

temp=a%b;

a=b;

b=temp;

}

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

return 0;

}

3、穷举法

#include&lt;stdio.h&gt;

int main()

{

int a,b,c;

int d=0;//计数器

while(1)

{

printf("输入两个数字求最大公约数:");

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

c=(a&gt;b)?b:a;//三目运算符

while(a%c!=0||b%c!=0)

{

c--;

d++;

}

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

printf("%d ",d);

}

return 0;

}