手机ui设计网站,做网站获取ip,h5页面可以跳转到小程序吗,手机怎么防止网站自动跳转【题目链接】
ybt 1633#xff1a;【例 3】Sumdiv OpenJudge 百练 1845:Sumdiv
【题目考点】
1. 乘法逆元
当模数ppp为质数时#xff0c;可以使用快速幂求逆元 a−1modpap−2modpa^{-1} \bmod p a^{p-2} \bmod pa−1modpap−2modp
2. 算术基本定理#xff08;分解质因数…【题目链接】ybt 1633【例 3】SumdivOpenJudge 百练 1845:Sumdiv【题目考点】1. 乘法逆元当模数p pp为质数时可以使用快速幂求逆元a − 1 m o d p a p − 2 m o d p a^{-1} \bmod p a^{p-2} \bmod pa−1modpap−2modp2. 算术基本定理分解质因数对n nn分解质因数得n p 1 a 1 p 2 a 2 . . . p n a n np_1^{a_1}p_2^{a_2}...p_n^{a_n}np1a1p2a2...pnan那么n nn的约数和为( 1 p 1 . . . p 1 a 1 ) ( 1 p 2 . . . p 2 a 2 ) . . . ( 1 p n . . . p n a n ) (1p_1...p_1^{a_1})(1p_2...p_2^{a_2})...(1p_n...p_n^{a_n})(1p1...p1a1)(1p2...p2a2)...(1pn...pnan)3. 等比数列求和等比数列求和公式S a 1 ( q n − 1 ) q − 1 S\frac{a_1(q^n-1)}{q-1}Sq−1a1(qn−1)其中a 1 a_1a1为首项q qq为公比n nn为项数4. 费马小定理g c d ( a , p ) 1 gcd(a,p)1gcd(a,p)1,p pp为质数时a p − 1 ≡ 1 ( m o d p ) a^{p-1}\equiv 1 \pmod pap−1≡1(modp)推论g c d ( a , p ) 1 gcd(a,p)1gcd(a,p)1,p pp为质数时a b ≡ a b m o d ( p − 1 ) ( m o d p ) a^b\equiv a^{b \bmod (p-1)} \pmod pab≡abmod(p−1)(modp)p pp为质数。【解题思路】首先手写质数判断函数判断确定9901为质数设M 9901 M9901M9901对A AA分解质因数得A p 1 a 1 p 2 a 2 . . . p n a n Ap_1^{a_1}p_2^{a_2}...p_n^{a_n}Ap1a1p2a2...pnan那么A B p 1 a 1 B p 2 a 2 B . . . p n a n B A^Bp_1^{a_1B}p_2^{a_2B}...p_n^{a_nB}ABp1a1Bp2a2B...pnanBA B A^BAB的约数和为S SS。S ( 1 p 1 . . . p 1 a 1 B ) ( 1 p 2 . . . p 2 a 2 B ) . . . ( 1 p n . . . p n a n B ) S(1p_1...p_1^{a_1B})(1p_2...p_2^{a_2B})...(1p_n...p_n^{a_nB})S(1p1...p1a1B)(1p2...p2a2B)...(1pn...pnanB)对于其中的一项1 p k . . . p k a k B 1p_k...p_k^{a_kB}1pk...pkakB设p m p k m o d M p_mp_k\bmod MpmpkmodM如果M ∣ p k M\mid p_kM∣pk则p m 0 p_m0pm0( 1 p k . . . p k a k B ) m o d M ( 1 p m p m 2 . . . p m a k B ) m o d M 1 (1p_k...p_k^{a_kB})\bmod M(1p_mp_m^2...p_m^{a_kB})\bmod M1(1pk...pkakB)modM(1pmpm2...pmakB)modM1如果M ∣ ( p k − 1 ) M\mid (p_k-1)M∣(pk−1)则p m 1 p_m1pm1( 1 p k . . . p k a k B ) m o d M ( 1 1 1 2 . . . 1 a k B ) a k B 1 (1p_k...p_k^{a_kB})\bmod M(111^2...1^{a_kB})a_kB1(1pk...pkakB)modM(1112...1akB)akB1其它情况时有M ∤ p k M\nmid p_kM∤pk即g c d ( M , p k ) g c d ( M , p k m o d M ) g c d ( M , p m ) 1 gcd(M, p_k) gcd(M, p_k \bmod M)gcd(M, p_m)1gcd(M,pk)gcd(M,pkmodM)gcd(M,pm)1。有M ∤ ( p k − 1 ) M\nmid (p_k-1)M∤(pk−1)即g c d ( M , p k − 1 ) g c d ( M , ( p k − 1 ) m o d M ) g c d ( M , p m − 1 ) 1 gcd(M, p_k-1) gcd(M, (p_k-1)\bmod M) gcd(M, p_m-1)1gcd(M,pk−1)gcd(M,(pk−1)modM)gcd(M,pm−1)1。设S k 1 p k . . . p k a k B S_k1p_k...p_k^{a_kB}Sk1pk...pkakB求S k m o d M ( 1 p m . . . p m a k B ) m o d M S_k \bmod M(1p_m...p_m^{a_kB}) \bmod MSkmodM(1pm...pmakB)modM使用等比数列求和公式得S k p m a k B 1 − 1 p m − 1 m o d M S_k\dfrac{p_m^{a_kB1}-1}{p_m-1}\bmod MSkpm−1pmakB1−1modM对于S k S_kSk的分子求( p m a k B 1 − 1 ) m o d M ( p m a k B 1 m o d M − 1 ) m o d M (p_m^{a_kB1}-1) \bmod M(p_m^{a_kB1}\bmod M-1) \bmod M(pmakB1−1)modM(pmakB1modM−1)modM模数M MM为质数且g c d ( M , p m ) 1 gcd(M,p_m)1gcd(M,pm)1根据费马小定理可以进行降幂处理p m a k B 1 m o d M p m ( a k B 1 ) m o d ( M − 1 ) m o d M p_m^{a_kB1}\bmod Mp_m^{(a_kB1)\bmod (M-1)}\bmod MpmakB1modMpm(akB1)mod(M−1)modM。该式可以使用快速幂取模算法求解。对于S k S_kSk分母中的一项1 p m − 1 m o d M \dfrac{1}{p_m-1} \bmod Mpm−11modM已知g c d ( p m − 1 , M ) 1 gcd(p_m-1, M) 1gcd(pm−1,M)1,可以求p m − 1 p_m-1pm−1模M MM的逆元即( p m − 1 ) − 1 m o d M (p_m-1)^{-1} \bmod M(pm−1)−1modM。由于模数M MM为质数可以使用快速幂求乘法逆元( p m − 1 ) − 1 m o d M ( p m − 1 ) M − 2 m o d M (p_m-1)^{-1} \bmod M(p_m-1)^{M-2} \bmod M(pm−1)−1modM(pm−1)M−2modM因此S k ( p m ( a k B 1 ) m o d ( M − 1 ) − 1 ) ( p m − 1 ) M − 2 m o d M S_k(p_m^{(a_kB1)\bmod (M-1)}-1)(p_m-1)^{M-2}\bmod MSk(pm(akB1)mod(M−1)−1)(pm−1)M−2modM遍历A AA的所有质因数p k p_kpk求出各个S k S_kSk的值结果相乘并模M得到最终结果。【题解代码】解法1#includebits/stdc.husingnamespacestd;#defineM9901#defineMOD(a,b)(((a)%(b)(b))%(b))typedeflonglongLL;LL A,B,ans1;mapLL,LLf;//i是一个质因数f[i]是i的指数voidinitFac(LL n){for(LL i2;i*in;i)while(n%i0){f[i];n/i;}if(n1)f[n]1;}LLfastPow(LL a,LL b,LL m){LL r1;while(b0){if(b%21)rr*a%m;aa*a%m;b/2;}returnr;}LLsolve(LL p,LL a)//对于A中的一项质因数p^a求出S1p...p^aB{LL pmp%M;if(pm0)return1;elseif(pm1)return(a*B1)%M;else{LL fzMOD(fastPow(pm,(a*B1)%(M-1),M)-1,M);LL fmfastPow(pm-1,M-2,M);returnMOD(fz*fm,M);}}intmain(){cinAB;if(A0){cout0;return0;}if(A1){cout1;return0;}initFac(A);for(pairLL,LLpa:f)ansMOD(ans*solve(pa.first,pa.second),M);coutans;return0;}