c语言求最大公约数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言求最大公约数相关的知识,希望对你有一定的参考价值。

1、新建一个C语言源程序,这里使用Visual C++6.0的软件:

2、从键盘中输入两个正整数a和b。取两个数a,b中的较小值存放到变量n中。从两个数a和b中的较小数开始逐个减小1,寻找能整除a和b的整数,第一个找到的整数即整数a和b的最大公约数,最后将找到的结果输出即可完成程序的编写:

3、对源程序编译运行,测试输入4、6,得到最大公约数2说明程序是正确的,以上就是用c语言求最大公约数的过程:

参考技术A

可以按照数学规则,寻找最大的可以同时被两个数整除的数值,即为最大公约数。

代码如下:

int gcd(int a, int b)

    int n = a<b?a:b;//从ab中的最小值开始计算。
    while(n>=1)
    
        if(a%n==0 &&b%n==0) break;//最大公约数。
    
    
    return n;

参考技术B #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));
参考技术C 楼主好~
#include<stdio.h>
int main()

int n,a,b,c;
printf("请输入两个整数(逗号隔开):");
scanf("%d,%d",&a,&b);
n=b;
c=a%b;
while(c!=0)

a=b;
b=c;
c=a%b;

printf("\n最大公约数是:%d\n",b);
return 0;
本回答被提问者和网友采纳
参考技术D 这个交换保证大数除(取余)小数,如果小数在前,会得不到正确的结果

小白.C语言怎么求多个数的最大值

例:
有数组 unsigned int x[n];
那么: unsigned int iMax=0;
for(unsigned int i=0;i<n;i++)
if( iMax < x[i] ) iMax=x[i];

就是把数组数值过一遍罢了, 数组类型不一样的话,自己调整一下代码.
参考技术A #define MAX 10
#include <stdio.h>
void main( )
/* 本程序中是以求 10 个数字的最大值为例,该 MAX 宏定义可以根据需要自行修改 */
int i = 0 , num[MAX] , max_value = 0 ;

for( i = 0 ; i < MAX ; i ++ )

scanf( "%d", &num[i] ) ;

for( i = 0 ; i < MAX ; i ++ )
if( num[i] > max_value )

max_value = num[i] ;

printf("MAX VALUE is: %d\n", max_value ) ;

以上是关于c语言求最大公约数的主要内容,如果未能解决你的问题,请参考以下文章

C语言函数编写,求两个整数的最大公约数和最小公倍数

辗转相除法求最大公约数c语言代码

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

[C语言]求最大公约数和求素数

c语言 输入五行六列的数组,求最大值

c语言辗转相除法求最大公约数和最小公倍数