代码运行问题,求助
  • 板块学术版
  • 楼主PassName
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/1/31 12:38
  • 上次更新2023/10/28 09:59:12
查看原帖
代码运行问题,求助
524911
PassName楼主2022/1/31 12:38
#include<bits/stdc++.h>
using namespace std;
inline long long solve(long long n)
{ 
    bool IsPrime[1000100];
	long long num;
	num=0;long long prime[1000100];
	memset(prime,0,sizeof(prime)); 
    memset(IsPrime,false,sizeof(IsPrime));
    for(long long i=2;i<=1000000;i++){
        if(IsPrime[i]) continue;
        prime[num++]=i;
        for(long long j=i+i;j<=1000000;j+=i)
            IsPrime[j]=true;
    }
	long long ans=1,sum;
    for(int i=0;i<num&&prime[i]*prime[i]<=n;i++){
        long long tmp=prime[i];
        sum=0;
        if(n%tmp==0){
            while(n%tmp==0){
                n/=tmp;
                sum++;
            }
            ans*=(sum+1LL);
        }
    }
    if(n>1) ans*=2;
    return ans;
}
int main(){
    int n;
    cin>>n;
    cout<<solve(n);
    return 0;
}

这样运行不了,然后我把 long long prime[1000100];放到函数外面就行了,为啥啊

2022/1/31 12:38
加载中...