算法原理:
- (文章链接 )
#include<cstdio>
#include<iostream>
using namespace std;
const int MAXN=1e6;
int primes[MAXN],primeCnt=0;
bool notPrime[2*MAXN];
void initPrime(int x){
for(int i=2;i<=x;i++){
if(notPrime[i])continue;
for(int j=2;j<=x/i;j++){
notPrime[i*j]=1;
}
}
for(int i=2;i<=x;i++)
if(!notPrime[i])primes[++primeCnt]=i;
}
int ans[MAXN],ansValue[MAXN];
int main(){
int n;
scanf("%d",&n);
initPrime(n);
for(int i=1;i<=primeCnt;i++){
int tmpN=n,nowPrime=primes[i],nowAns=0;
while(tmpN){
nowAns+=(tmpN/nowPrime);
tmpN/=nowPrime;
}
printf("%d %d\n",nowPrime,nowAns);
}
return 0;
}
2024.5.29
zrO
你的腿…🤣
图没了
写的好
Orz
%%%
good
妙啊
666
妙啊,妙啊!
一看就懂, 厉害!
太强了
% % %
%%%
请教一下 横向的不是还有个6是2的倍数吗
怎么竖向就可以看到 1 2 4=7 呢? 不是 1 2 1 3 吗?
把每一行的加起来吧
大哥厉害
老哥牛逼!
棒!