文号
847064
阅读
6576
回复
4
收藏
3
AT1357问题
2018/06/15
IP:浙江

是这样,最近被一道题好好地 # 了一下。

题目:洛谷 AT1357

求n^p%m

其中1<=n、m<=1000000000 1<=p<=100000000000000

该怎办?

8年5个月前IP:浙江
847099
3楼

我的是这样的

#include<iostream>using namespace std;unsigned long long n,m,p;//n^m%punsigned long long f(unsigned long long x){ if(x==1) return n%p; if(x%2==0) //完全二分 { unsigned long long j=f(x/2); //储存f的值,不用调用2次 return j*j%p; } else { unsigned long long j=f((x-1)/2); return j*j*n%p; }}int main(){ cin>>n>>m>>p; cout<<f(m); return 0;}

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的