本来一开始觉得用欧拉函数不可取的,因为\(M!\)太大了
所以我想到了质因数分解,只要找的数不含\(M!\)的质因子即可
理想是美好的,但是现实是我没有办法确定每一个非\(M!\)质因子的质因子的个数,因为我最后要保证所有质因子的乘积不会超过\(N!\)
所以我们只能再回到欧拉函数
我们稍微的套用一下欧拉函数的公式,就会发现(不考虑溢出)阶乘的欧拉函数还是很好求的
说明这条路可能走得通,试一下
第二种情况怎么分析?从我们学过的公式来说,欧几里得公式似乎挺好用的,所以我们就考虑\(gcd(k,M!)=1\)的\(k\)的个数(其中\(k<M!\))
那这不就是\(φ(M!)\)吗?我们只需要还原回去就行了
具体来说,设\(k+t*M!≤N!\)且\(k+(t+1)*M!>N!\),解出\(t\)就好了,注意解不等式的时候有\(k<M!\)和\(M!|N!\)
这里说一下,假定了一个\(k\)之后,每一步是增加\(M!\)而不是\(k\),脑子别发癫了
标签:沙拉,困惑,函数,公式,个数,因子,公主,欧拉 From: https://www.cnblogs.com/dingxingdi/p/18016687