萌新不知道为什么编译错误

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
bool is_prime(ll x){
    if(x==1)return false;
    if(x==2||x==3)return true;
    if(x%6!=1&&x%6!=5)return false;
    int s=sqrt(x);
    for(int i=5;i<=s;i+=6)if(x%i==0||x%(i+2)==0)return false;
    return true;
}
vector<ll> pfc(ll n){
    vector<ll>st;
    ll i=0;
    if(n==1){
        st.push_back(1);
        return st;
    }
    while(i<n){
        if(is_prime(n)){
            st.push_back(n);
            return st;
        }
        for(i=2;i<n;i++)
            if(n%i==0){
                st.push_back(i);
                n/=i;
                break;
            } 
    }
    st.push_back(n);
    return st;
}
int main(){
	cin>>n;
	cout<<pfc(n);
	return 0; 
}

此代码本地报错,报错如下:


e,不知道为什么(可能是我还没有学,求 dalao 调一下 :pray: :pray: :pray:

@王建力

能出vector?
不能吧
还是老老实实存下来再算

谢谢,现在好了

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
bool is_prime(ll x){
    if(x==1)return false;
    if(x==2||x==3)return true;
    if(x%6!=1&&x%6!=5)return false;
    int s=sqrt(x);
    for(int i=5;i<=s;i+=6)if(x%i==0||x%(i+2)==0)return false;
    return true;
}
void pfc(ll n){
    vector<ll>st;
    ll i=0;
    if(n==1){
        st.push_back(1);
        for(ll i=0;i<st.size();i++)cout<<st[i]<<' ';
        return;
    }
    while(i<n){
        if(is_prime(n)){
            st.push_back(n);
            for(ll i=0;i<st.size();i++)cout<<st[i]<<' ';
        	return;
        }
        for(i=2;i<n;i++)
            if(n%i==0){
                st.push_back(i);
                n/=i;
                break;
            } 
    }
    st.push_back(n);
    for(ll i=0;i<st.size();i++)cout<<st[i]<<' ';
    return;
}
int main(){
	cin>>n;
	pfc(n);
	return 0; 
}