197 階乘分解(質數)

2021-10-09 04:31:08 字數 1104 閱讀 4521

階乘分解

給定整數 n ,試把階乘 n! 分解質因數,按照算術基本定理的形式輸出分解結果中的 pi 和 ci 即可。

輸入格式

乙個整數n。

輸出格式

n! 分解質因數後的結果,共若干行,每行一對pi,ci,表示含有pcii項。按照pi從小到大的順序輸出。

資料範圍

1≤n≤106

輸入樣例:

5輸出樣例:

2 33 1

5 1樣例解釋

5!=120=23∗3∗5

思路:最大質因數肯定不超過n,線性篩求1~n的素數

例如:5的階乘,找2的次方數,那麼我們先用5/2 得 2個,那就是說2的倍數的數有2個 ,分別是 2和4,然後我們再5 / (2*2) 得1,那就是說4的倍數有1個,就是4。

4被統計了兩次,2被統計了一次,所以2的次方數是3。

#include

#define ll long long

#define inf 1<<30

using

namespace std;

const

int n=

1e6+5;

int n,vis[n]

,prime[n]

,cnt=0;

intmain()

} cin >> n;

for(

int i=

0;i)return0;

}

另一種:

#include

#define ll long long

#define inf 1<<30

using

namespace std;

const

int n=

1e6+5;

int n,vis[n]

,prime[n]

,cnt=0;

intmain()

} cin >> n;

for(

int i=

0;i)return0;

}

AcWing 197 階乘分解

給定整數 n 試把階乘 n 分解質因數,按照算術基本定理的形式輸出分解結果中的 pi 和 ci 即可。輸入格式 乙個整數n。輸出格式 n 分解質因數後的結果,共若干行,每行一對pi,ci,表示含有pcii項。按照pi從小到大的順序輸出。資料範圍 1 n 106 輸入樣例 5輸出樣例 2 33 1 5...

AcWing197階乘分解

n 的最大質因子不超過n。先質數篩出n以內質數,然後算在n!出現了多少次。對於質數p,只有質數p的倍數才含p。至少含有乙個p的有 include include include define ms a,b memset a,b,sizeof a define inf 0x3f3f3f3f defin...

AcWing 197 階乘分解

給定整數 n 試把階乘 n 分解質因數,按照算術基本定理的形式輸出分解結果中的 pi 和 ci 即可。輸入格式 乙個整數n。輸出格式 n 分解質因數後的結果,共若干行,每行一對pi,ci,表示含有pcii項。按照pi從小到大的順序輸出。資料範圍 1 n 106 輸入樣例 5輸出樣例 2 33 1 5...