JZOJ 5791 階乘 數論

2021-08-28 17:49:45 字數 919 閱讀 1435

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 ...