Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算61模功率(45,60)_C#_C_Algorithm_Math - Fatal编程技术网

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