C# 计算61模功率(45,60)
这是一个家庭作业问题C# 计算61模功率(45,60),c#,c,algorithm,math,C#,C,Algorithm,Math,这是一个家庭作业问题 我需要计算45^60模61。我想知道任何一种快速的方法,以编程方式或手动方式获得结果,以较快的速度为准。我认为最好的方法是使用费马的小定理 其中p=61,p-1=60 希望这有帮助,因为费马的小定理,结果是1 如果p为素数 61是一个素数,因此ap-1除以p将得到1作为余数 然而,如果p是非素数,通常的技巧是重复平方 45^60 = 2025^30 = (33*61 + 12)^30 = 12^30 = 144^15 = (2*61 + 22)^15 = 22^15 =
我需要计算45^60模61。我想知道任何一种快速的方法,以编程方式或手动方式获得结果,以较快的速度为准。我认为最好的方法是使用费马的小定理 其中p=61,p-1=60
希望这有帮助,因为费马的小定理,结果是1 如果
p
为素数
61是一个素数,因此a
p-1
除以p
将得到1作为余数
然而,如果p
是非素数,通常的技巧是重复平方
45^60 =
2025^30 = (33*61 + 12)^30 = 12^30 =
144^15 = (2*61 + 22)^15 = 22^15 =
10648^5 = ( 174*61 + 34)^5 = 34^5 =
45435424 = 744843 * 61 + 1 = 1
这里的相等意味着=(mod 61)Wolfram Alpha
随时准备好:D
我认为编程速度会更快。您可以使用C POW函数和%运算符手动完成作业?你不必写任何代码?然后询问wolfram alpha^60+mod+61@Tobias:那肯定不行。45^60大约有320位,比任何
double
甚至long double
+1都要多,但是a是p的整数互质,如果p是素数,那么p应该紧跟其后。当p不是素数,b是大的时候,还有其他定理可以用来加速a^b mod p
。
45^2 = 2025 = 12
45^4 = 12^2 = 144 = 22
45^8 = 22^2 = 484 = 57
45^16 = 57^2 = 3249 = 16
45^32 = 16^2 = 256 = 12
45^60 = 45^(4+8+16+32) = 22 * 57 * 16 * 12 = 1