袁莱维 2023-03-19 15:05 采纳率: 0%
浏览 22

关于分解质因数,如何解决?

img


代码:

#include <bits/stdc++.h>
using namespace std;
int main() {
    int a;
    bool u=0;
    cin>>a;
    cout<<a<<'=';
    while(sqrt(a)>1) {
        int w=sqrt(a);
        for(int i=2; i<=w;) {
            if(a%i==0) {
                a/=i;
                if(u!=0) {
                    cout<<'*';
                }
                cout<<i;
                u++;
                i++;
                break;
            }
        }
    }
    if(a>1) {
        cout<<'*'<<a;
    }
}

超时状况:

img

求帮助!

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2023-03-19 15:17
    关注
    
    #include <bits/stdc++.h>
    using namespace std;
    #include <math.h>
    int main() {
        int a,i;
        bool u=0;
        cin>>a;
        cout<<a<<'=';
        while(sqrt(a*1.0)>1) {
            int w=sqrt(a*1.0);
            if(w<2)
                break;
            for(i=2; i<=w;i++) {
                if(a%i==0) {
                    a/=i;
                    if(u!=0) {
                        cout<<'*';
                    }
                    u=1;
                    cout<<i;
                    break;
                }
            }
            if(i>w)
                break;
        }
        if(a>1) {
            cout<<'*'<<a;
        }
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月19日