description
有n個正整數a[i],設它們乘積為p,你可以給p乘上乙個正整數q,使p*q剛好為正整數m的階乘,求m的最小值。
input
共兩行。
第一行乙個正整數n。
第二行n個正整數a[i]。
output
共一行乙個正整數m。
題目要求乙個最小的m
mm使m!m!
m!包含p
pp這個因子。
可以把p分解質因數,假設p=∏
aibi
p=∏ai^
p=∏aib
i(ai
aiai
為質數),那麼只要m
mm包含了每個aib
iai^
aibi
,m !m!
m!就包含ppp。
所以對於每個aib
iai^
aibi
,分別求出滿足條件的最小的m
mm,取最大值即可。
#include
#include
using
namespace std;
int n,b,cnt[
200501];
intmain()
if(b>
1) cnt[b]++;
}long
long cur=
0,maxn=0;
for(
int i=
2;i<=
200000
;i++)if
(cnt[i]
>0)
maxn=
max(maxn,cur-i);}
printf
("%lld"
,maxn)
;}
JZOJ 5791 階乘 因數
題目 對於10 的資料,n 10 對於30 的資料,n 1000 對於100 的資料,n 100000,a i 100000 首先,p q m 也就是 p 是 m 的乙個因數 把 p 質因數分解,那麼 m 的每個對應質因數的次數都 p 中對應質因數的次數 不必乘出來 p,只要把每個 a i 質因數分...
JZOJ5791 階乘 二分 數論,數學
題目 給出nn 個數a 1 a 2 a n a 1 a 2 a n 求a 1 a 2 a n a 1 a 2 a n 是m m 因數的最小的mm。首先,我們可以把這n n個數分解質因數,並將每個質因數存在乙個桶裡。那麼我們設分解後有k 1 k 1 個x 2 x 2 k 2 k 2 個x 2 k m ...
JZOJ5791 階乘 二分 數論,數學
題目 給出nn 個數a 1 a 2 a n a 1 a 2 a n 求a 1 a 2 a n a 1 a 2 a n 是m m 因數的最小的mm。首先,我們可以把這n n個數分解質因數,並將每個質因數存在乙個桶裡。那麼我們設分解後有k 1 k 1 個x 2 x 2 k 2 k 2 個x 2 k m ...