正规赌博网站大全

网上赌博网站大全

技术

直到没有整除的自然数n和一个素数p,分裂的n重复阶乘(N!)更在P,我们定义的余由商进一步p F(N,P)和划分

例如,F(12,5)= 4

12! (= 479001600)最多可分为2次,每次5次

该商是19160064

将此除以5后的余数为4

类似地,确认F(5,3)= 1,F(20,7)= 5,F(1000,31)= 11

从标准输入中,给出自然数n和素数p(1≤n≤1012,1≤p≤105)和空格字符分隔符

编写一个程序,将F(n,p)的值输出到标准输出

N!这是除以p的问题

简单地说,n!实际计算n的值是不可能的,但这次n的上限在1012处相当大,所以n!根本无法存储在内存中

作为替代,n!的值本身,而不是来计算,1而×2×3×4×...和反过来相乘,但方式还认为,计算每个时刻p的简单化剩余部分,仍然是最大的在1012倍计算的顺序,所以你不能回答1秒的时间限制

所以让我们专注于重复这个问题的模式

我们将解释n = 32,p = 5的情况作为例子

下图是32!这是我写下来的

5的倍数是重点

在这种情况下,有必要将5的倍数除以5,这使故事混乱

所以首先让我们考虑分成5的倍数,而不是这样

取出夹在5的倍数之间的数字,并尝试将其划分为catnaries

“1,2,3,4”,“6·7·8·9”,“11·12·13·14”等

它将如下图所示

好吧,这里将每个红色框除以5的余数都是相等的

如果,例如,“6,7,8,9”,它不改变的计算结果的剩余部分各6,7,8,9的剩余部分之前得到

它等于“1,2,3,4”

因此,图中的红色圆圈都是相同的值F(4,5)

由于总共有6个红色圆圈(= 32÷5的整数部分),因此F(4,5)6是整个红色的结果

注意:同余公式的含义和六个常用属性(外部网站)让我们考虑其他部分

右侧的黄色外壳中有一个“31·32”的小数部分

如上所述,让我们先将每个数字除以5

它与“1·2”相同,即F(2,5)

这是将32除以5的余数

余数是5的倍数

这是这个问题的重点

取出时是“5·10·15·20·25·30”

当将每个数字除以5时,它变为“1,2,3,4,5,6”

实际上这部分是F(6,5)

以上总结如下

问题的规模比平时要小

用数学公式编写时,如下所示

让我们考虑一般形式

好吧,让我们分别用n和p替换上面的32和5

我认为这并不太难

将此与上图进行比较

它将如下图所示

好吧,我们在这里介绍一个有趣的定理

威尔逊的定理

虽然它是红色F(p-1,p)的一部分,但实际上可以看出,使用这个定理,它在没有计算的情况下变为等于p-1

当然(p-1)其实!我不介意编写代码来找到mod p,但这个定理的公式变得非常简单

参考文献:威尔逊定理(维基百科)以一般形式编写表达式的结果如下

最后,让我们编码

递归很容易写

在函数F(n,p)中,首先检查n和p的大小,如果n小,则保留n!它是计算mod p的代码

截至去哪里寻求P-1的电源,因为P-1通过这样平方1取余数,指数的力量是扭曲我们尝试应用只有P-1时奇数

代码示例(Python)如下

DEF幼稚(N,P):A = 1在范围K(1,N + 1):A * = K而%P == 0:A / = PA%= P返回DEF F(N,P ):如果n

在斯普利特())打印F(N,p)挑战者的这个问题,已编制谁曾发布在Togetter代码的人的代码是的

(我们将根据需要添加

)请在这里查看

CodeIQ“分开”问题非常感谢大家的代码Kawazoe!目前,Kawazoe的最新一期正在制作中

请务必挑战!



正规赌博网站大全

技术 专栏 娱乐

网上赌博网站大全

股票 国外 最新正规网上赌博网站

最新正规网上赌博网站

网上赌博网站大全 正规赌博网站大全