题解 | #质数因子#

质数因子

https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

#include <bits/stdc++.h>
#include <cmath>
#include <vector>
using namespace std;
int main() {
    int num;
    cin>>num;
    int n1=sqrt(num);
    vector<int> a;
    for(int i=2;i<=n1;i++)
    {
        int flag1=0;
        for(int j=2;j<i;j++)
        {
            if(i%j==0)
            {
                flag1=1;
                break;
            }
            else
                continue;
        }
        if(flag1==0)
        {
            a.push_back(i);
        }

    }
     /*for(vector<int>::iterator it=a.begin();it!=a.end();it++)
     {
        cout<<*it<<' ';
     }
     cout<<endl;
    int flag2=0;*/
    for(vector<int>::iterator it=a.begin();it!=a.end();it++)
    { 
        if(num%*it==0&&num!=*it)
        {   
            do 
            {
                num=num/(*it);
                cout<<*it<<' ';
            }while (num%*it==0);
        }
    }
    if(num!=1)
    cout<<num;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务