求两个数的最大公约数的程序是,在C中

求两个数的最大公约数的程序是,在C中,第1张

submul(int m,int n)//辗转相除法

{

int residue;

while(residue=m%n)

{

 m=n;

 n=residue;

  }

  return n;

}

按照你的要求编写的求最大公约数的递归C语言程序如下

#include <stdioh>

int gcd(int m,int n){

 int r=m%n;

 if(r==0){

  return n;

 }

 return gcd(n,r);

}

int main(){

 int m,n;

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

 printf("%d",gcd(m,n));

 return 0;

}

#include<stdioh>

#include <conioh>

void main()

{

int m,n,k;

while (1)

{

printf("输入m和n(m>n):");

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

if(m<n)

printf("输入错误,请重新输入\n");

else break;

}

while (1)

{

k=m%n;

if(k==0)

break;

m=n;

n=k;

}

printf("m和n的最大公约数是:%d",n);

getch();

}

#include<stdioh>

int main() {

int a,b,c;

printf("请输入两个正整数 : \n");

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

if(a > b) {

for(c = b;c != 0;c--) {

if((a%c == 0) && (b%c == 0)) {

printf("%d为最大公约数。\n",c);

break;

}

}

}

else {

for(c = a;c != 0;c--) {

if((b%c == 0) && (a%c == 0)) {

printf("%d为最大公约数。\n",c);

break;

}

}

}

return 0;

}

大公约数

将它们分解质因数,找出其中相同的质因数,再将它们相乘,就得到了最大公约数,如果两数的质因数中,没有一个是相同的,那么它们的最大公约数就是1

比如(56,42)

56=7×2×2×2

42=7×2×3

其中7,2是相同的,那么它们的最大公约数就是2×7=14

附加:最小公倍数

依照上述方法得到最大公约数后,再乘以其它所有剩下来的数

比如[56,42]

56=7×2×2×2

42=7×2×3

其中7,2是相同的,它们的最大公约数就是14,剩下来的有2,2,3,将它们相乘,再乘以14,得到14×2×2×3=168,它们的最小公倍数就是168如果两数的最大公约数是1,那么它们的最小公倍数就是它们的乘积

(分解质因数:将一个数分解成几个质数的积的形式)

(质因数:除了本身和1之外没有其它约数的数,比如2,3,5,7,11等等,注:1不是质因数)

求两数的最大公约数和最小公倍数,你做的题目多了,速度就自然而然变快了,熟能生巧嘛~~~~

以上就是关于求两个数的最大公约数的程序是,在C中全部的内容,包括:求两个数的最大公约数的程序是,在C中、编写一个递归过程,求两个自然数mn最大公约数、c语言程序编写:计算两个数的最大公约数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9330750.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存