AcWing 197. 阶乘分解
原题链接
中等
作者:
代码人生
,
2024-04-13 21:55:54
,
所有人可见
,
阅读 8
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1e6 + 10;
int prime[N],cnt;
bool st[N];
void init(int n){
st[0] = st[1] = true;
for(int i=2;i<=n;i++){
if(!st[i]) prime[++cnt] = i;
for(int j=1;prime[j]*i<=n;j++){
st[i*prime[j]] = true;
if(i % prime[j] == 0) break;
}
}
}
int main()
{
int n;
scanf("%d",&n);
init(n);
for(int i=1;i<=cnt;i++){
int a = prime[i],b = 0;
for(int j=n;j;j/=a) b += j / a;
printf("%d %d\n",a,b);
}
return 0;
}