m0_68639754 2023-03-19 01:22 采纳率: 44.4%
浏览 171
已结题

分解质因数求最大公约数

代码没问题就是结果一直为一放不了代码没办法11111112111111很简单的问题但是卡住我了有没有人帮忙看看的

  • 写回答

3条回答 默认 最新

  • a5156520 2023-03-19 11:31
    关注

    应该是因为分解质因数和计算m和n的公共质因数那里需要改进下,修改如下:

    参考链接:



    #include<iostream>
    using namespace  std;
    int fenjie() {
    
        int m,n;
        cout<<"请输入m:";
        cin>>m;
    
        cout<<"请输入n:";
        cin>>n;
    
        int i,j;
        int c=0;
        int d=0;
        int result=1;
        int a[100],b[100];
    
        i=2;
        while(m!=1&&i<m) { // 计算m的质因数 
    
            while(m%i==0) {
                a[c]=i;
                m=m/i;
            //    printf("a[%d]=%d\n",c,a[c]);
            //    printf("i=%d,m=%d\n",i,m);
                if(m!=1) {
                    c++;
                } else {
                    break;
                }
            }
            i++;
    
        }
    
        i=2;
        while(n!=1&&i<n) {  // 计算n的质因数 
    
            while(n%i==0) {
                b[d]=i;
                n=n/i;
            //    printf("b[%d]=%d\n",d,b[d]);
            //    printf("i=%d,n=%d\n",i,n);
                if(n!=1) {
                    d++;
                } else {
                    break;
                }
            }
            i++;
    
        }
    
    
        i=0;
     // 求m和n的公共质因数 ,从m的第一个质因数逐个与n的每个质因数比较,如果相同,则累乘到结果中    
        while(i<=c) { 
            
            j=0;
            while(j<=d&&i<=c) { // 重复遍历n的每个质因数  
                
                if(a[i]==b[j]&&b[j]!=-1) {  //如果质因数相同,则累乘到结果中,同时将n的质因数数组此位置置-1,下次不再比较 
                    result*=a[i];
                //    printf("a[%d]=%d,b[%d]=%d,result=%d\n",i,a[i],j,b[j],result);
                    b[j]=-1;
                    i++;  // 判断m的下一个质因数            
                }
                j++;  // 判断n的下一个质因数 
            }
            
            i++;  // 上面的循环结束,说明需要判断m的下一个质因数了 
        }
    
        return result;
    }
    int main() {
    
        cout<<"结果为 :"<<fenjie();
        return 0;
    
    }
    
    
    
    
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月27日
  • 已采纳回答 3月19日
  • 修改了问题 3月19日
  • 修改了问题 3月19日
  • 展开全部

悬赏问题

  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 组策略中的计算机配置策略无法下发
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)