
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语言程序编写:计算两个数的最大公约数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)