c语言,用分解质因数的方法求两个数的最大公约数

voidfenjie(intn){inti;printf("%d=",n);while(n%2==0){printf("%d*",2);n/=2;}for(i=3;i<=... void fenjie(int n)
{
int i;
printf("%d=",n);

while(n%2==0){
printf("%d*",2);
n/=2;
}
for(i=3;i<=sqrt(n);i+=2)
{
if(n%i==0)
{
n/=i;
printf("%d*",i);
i-=2;
}

}
printf("%d\n",n);

}
int main(){
int a;
scanf("%d",&a);
fenjie(a);

return 0;
}
分解质因数已经写好,然后求大神补全代码!!!
展开
 我来答
天云小店
2015-06-02 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:791万
展开全部

主要通过循环控制语句求去两个数的最大公约数。

具体的实现方法可以参考如下函数:

// 最大公约数函数
int GreatestCommonDivisor(int m, int n)
{
    int temp;
    if(m<n)  // 取m,n中较大的一个数,m中存放较大的数,n中存放较小的数
    {
    // 不通过引入中间变量,通过异或运算来交换两个数的值
        m = m^n;
        n = n^m;
        m = m^n;
    }
    temp = m % n;  // 取出m除以n的余数
    // 反复分解质因数进行求最大公约数
    while(temp)
    {
        m = n;  // 将n值赋值给m
        n = temp;  // 将余值赋值给n
        temp = m % n; // 求余
    }
    return n;  // 返回最大公约数
}
植子昂户嘉
2020-02-07 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:760万
展开全部
主要通过循环控制语句求去两个数的最大公约数。
具体的实现方法可以参考如下函数:
// 最大公约数函数
int GreatestCommonDivisor(int m, int n)
{
int temp;
if(m
评论
0
0
0
加载更多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
少君同学
2014-09-15 · TA获得超过315个赞
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:201万
展开全部
求最大公约数为什么要分解质因数?分别得到两个数的质因数序列,怎么求公约数呢
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式