題目:
對於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 ...