外国个人主页网站欣赏,网站评价系统源码,做网站是先做界面还是先做后台,企业平台的作用容易想到分解因数。 对于一个数 p p p 的因数个数#xff0c;假设它可以被分解质因数成 a 1 i 1 a 2 i 2 a 3 i 3 ⋯ a k c k a_1^{i_1} a_2^{i_2} a_3^{i_3}\cdots a_k^{c_k} a1i1a2i2a3i3⋯akck 的形式#xff0c;则其因数个数为 ( i 1 1 ) ( i 2 1 )…容易想到分解因数。 对于一个数 p p p 的因数个数假设它可以被分解质因数成 a 1 i 1 a 2 i 2 a 3 i 3 ⋯ a k c k a_1^{i_1} a_2^{i_2} a_3^{i_3}\cdots a_k^{c_k} a1i1a2i2a3i3⋯akck 的形式则其因数个数为 ( i 1 1 ) ( i 2 1 ) ( i 3 1 ) ⋯ ( i k 1 ) (i_11)(i_21)(i_31)\cdots(i_k1) (i11)(i21)(i31)⋯(ik1)。 我们对序列 p p p 和 w w w 质因数分解之后再考虑这个问题。对于每次从 w w w 拆分出的一个质因子 A A A我们假设一棵树 p i p_i pi原来它的贡献为 x x x对于该棵树高的质因数拆分中质因子 A A A 的出现次数为 t t t则乘上该质因子之后它的贡献会变为 x ⋅ t 2 t 1 x\cdot \dfrac{t2}{t1} x⋅t1t2容易证明分子越小即 t t t 越小对答案的贡献越大。
由于数据范围是 1 0 4 10^4 104质因数的上界是很有限的。设 a ( i , j ) a(i,j) a(i,j) 表示 i j i^j ij 在所有树高的质因数拆分中出现了多少次每一次取到的一个 w w w 的质因子 A A A把它计算到当前存在且 k k k 最小的 A k A^k Ak 上即可。
注意筛 n n n 的质因数要筛到 n n n。
#include bits/stdc.h
using namespace std;
#define int long longconst int maxn1e45;
int a[maxn][30],ans1,p[maxn],mod998244353,n,w;void calc(int x)
{for(int i2;imax(x,w);i){int cnt0;while(x%i0) x/i,cnt;a[i][cnt];ansans*(cnt1)%mod;// coutcntendl;}
}signed main()
{cinnw;for(int i1;in;i) cinp[i],calc(p[i]);// for(int i1;in;i) couta[i][1]endl;for(int A2;Aw;A)while(w%A0){int k0;while(!a[A][k]) k; ans/(k1),ans%mod,ans*(k2),ans%mod;w/A,a[A][k]--,a[A][k1];// coutwendl;} coutans;return 0;
}