质因子判断复杂度太大
建议如下:(本人代码,变量有所不同,仅供参考)
```cpp
for(int i=2;i<=n;i++){
int i_=i;
for(int j=2;j<=i;j++){
while(i_%j==0){
a[j]++;
i_/=j;
}
}
}
for(int i=1;i<=10000;i++){
if(a[i]!=0) cout<<i<<" "<<a[i]<<endl;
}//我的输出分开了
```
by __Tonycyt__ @ 2023-03-31 12:57:47
```cpp
#include<iostream>
using namespace std;
long long a,c,d,e,v[5000000],b[5000000];
int main(){
cin>>a;
for(long long i=2;i<=a;++i){
long long h=i;
while(h!=1){
long long t=2;
while(h%t!=0)++t;
if(b[t]==0){v[c]=t;++c;b[t]=1;}
else ++b[t];
h/=t;
}
}
for(long long i=0;i<c;++i){printf("%d %d\n",v[i],b[v[i]]);}
return 0;}
```
by JasonTesla @ 2023-06-29 17:37:39