JZOJ 5791 階乘 因數

2022-05-12 11:04:01 字數 745 閱讀 2325

題目:

對於10%的資料,n<=10

對於30%的資料,n<=1000

對於100%的資料,n<=100000,a[i]<=100000

首先,p * q = m!,也就是 p 是 m! 的乙個因數;

把 p 質因數分解,那麼 m! 的每個對應質因數的次數都 >= p 中對應質因數的次數;

不必乘出來 p,只要把每個 a[i] 質因數分解即可;

對於 m!,統計質因數的次數就是 cnt[i] += m / pri[i] , m /= pri[i],證明之類的很好想啦。

**如下:

#include#include

#include

#include

using

namespace

std;

intconst maxn=1e5+5,inf=1e9;

intn,a[maxn],p[maxn],ans,mx,pri[maxn],cnt;

bool ck(int

x)//

printf("x=%d t=%d p[%d]=%d\n",x,t,i,p[i]);

}

return1;

}int

main()

int l=0,r=inf;

while(l<=r)

printf(

"%d\n

",ans);

return0;

}

JZOJ 5791 階乘 數論

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

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