题目传送门

题目中的式子很符合扩展欧拉定理的样子。(如果你还不知扩展欧拉定理,)。对于那一堆糟心的2,我们只需要递归即可,递归边界是模数为1.

另外,本题中好像必须要用快速乘的样子...否则无法通过...。

$Code$

 #include<cstdio>
#include<algorithm> using namespace std;
const int lim=; int T,p;
int phi[lim]; void init_phi()
{
phi[]=;
for(int i=;i<=lim;i++) phi[i]=i;
for(int i=;i<=lim;i++)
if(phi[i]==i)
for(int j=i;j<=lim;j+=i)
phi[j]=phi[j]/i*(i-);
} int mul(int a,int b,int mo)
{
int ans=;
while(b)
{
if(b&) ans=(ans%mo+a%mo)%mo;
b>>=;
a=a%mo*%mo;
}
return ans;
} int ksm(int a,int b,int mo)
{
int ans=;
while(b)
{
if(b&) ans=mul(ans,a,mo)%mo;
b>>=;
a=mul(a,a,mo)%mo;
}
return ans;
} int work(int mod)
{
if(mod==) return ;
return ksm(,work(phi[mod])+phi[mod],mod);
} int main()
{
init_phi();
scanf("%d",&T);
while(T--)
{
scanf("%d",&p);
printf("%d\n",work(p));
}
return ;
}

最新文章

  1. Android之自定义ViewPager实现图片的无线轮播
  2. VS2010+Qt+OpenCv(显示图像)
  3. iReport 中使用 Chart 图
  4. .net学习之委托和事件
  5. 形行色色的下拉菜单(HTML/CSS JS方法 jQuery方法实现)
  6. sql多行转一行,以逗号隔开
  7. windows7旗舰版激活密钥永久版免费分享
  8. 尝鲜delphi开发android/ios_环境搭建
  9. Easyui 创建dialog的两种方式,以及他们带来的问题
  10. VS2010下WPF开发ARCGIS ENGINE 10的带Ribbon控件项目
  11. 在python&amp;numpy中切片(slice)
  12. Maven “Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.4:create...”问题总结
  13. nginx + tomcat 反向代理
  14. Live2D插件--漂浮的二次元小姐姐
  15. flutter Row 垂直或水平放置多个widget
  16. Atlas+Keepalived系列一:安装Atlas:
  17. Bloom Filter 数据结构去重
  18. 解决在word中不能使用输入法
  19. sys和os模块
  20. [leetcode]Best Time to Buy and Sell Stock @ Python

热门文章

  1. java栈、堆
  2. VB.net版机房收费系统——结账功能实现(调错与优化)
  3. Cocos2d-x Vector——vector iterators incompatible
  4. 嵌入式开发之davinci--- 8148/8168/8127 中的添加算饭scd 场景检测 代码实现
  5. C、C++混合编程之extern &quot;C&quot;
  6. YTU 2209: 建立链表(线性表)
  7. Oracle:热备测试
  8. 第六届蓝桥杯C++B组省赛
  9. codeforces 667A A. Pouring Rain(水题)
  10. [Selenium] 如何在老版本的Chrome 浏览器上使用selenium