永发信息网

c^d mod n 这个算法怎么实现 (用C++ ) 注意C^d可能会超过最大长度 所以需要别的算法

答案:3  悬赏:50  手机版
解决时间 2021-02-09 20:05
c^d mod n 这个算法怎么实现 (用C++ ) 注意C^d可能会超过最大长度 所以需要别的算法
最佳答案
只要n不是很大,可以用快速求幂的方法做
int mod_exp(int c,int d,int n)
{
long long res=1;
while(d){
if(d&1) res=res*c%n;
c=c*c%n;
d>>=1;
}
return res;
}追问如果n比较大会怎么样??追答计算机最多只能处理64位整数,也就是2^63-1,如果超过这个范围就得用高精度算法了
全部回答
我同意楼上的两位,就是这种按二分d的做法
int mod_exp(int c, int d, int n)
{
int ans = 1;
while(d > 0)
{
if(d % 2 == 1) ans = (ans * c) % n;
c = (c * c) % n;
d /= 2;
}
return ans;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
in.coffee咖啡体验馆地址在什么地方,想过去
小孩误食画板旁边的小磁铁零件,但是没有咽下
男人之家服装店地址有知道的么?有点事想过去
为什么生长素主要的合成部位是幼嫩的芽叶和发
顶点咖啡(翔达大酒店咖啡厅)地址有知道的么?
【怎么量脚的尺码】怎样准确测量脚的大小
迈腾,凯美瑞和雅阁,哪个更有面子?
福建莆田龙华邮政编码
诚信机械配件厂在哪里啊,我有事要去这个地方
肝脾阳虚请问就有哪些症状
二战后,西欧和日本经济发展的共同原因有①美
介绍施工工具木锤的用途。
使命召唤6里普莱斯说敌人的敌人就是朋友,马
惠城区惠州街电(美宜佳嘉禾店)这个地址怎么能
翔鸿五金制品有限公司地址在什么地方,想过去
推荐资讯
崇桢辛未进士喻上猷
我在装修房孑在搞水电了,听别人说有这种作法
永济市雪花山,神潭大峡谷,哪个更好玩
大城山这个地址在什么地方,我要处理点事
日语里 服务员结账怎么说?
马铃薯切好之后放了两天还能吃吗 就是切成丝
闺蜜是什么
从广州白云机场到肇庆四会有机场大巴吗?
为什么武林高手不参加奥运会替国争光呢?
青岛话(小曼)什么意思?
故君子富 好行其德 是什么意思
南阳中州税务师事务所我想知道这个在什么地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?