Luogu P4139 上帝与集合的正确用法【扩展欧拉定理】By cellur925
2024-08-25 03:09:13
题目中的式子很符合扩展欧拉定理的样子。(如果你还不知扩展欧拉定理,戳)。对于那一堆糟心的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 ;
}
最新文章
- Android之自定义ViewPager实现图片的无线轮播
- VS2010+Qt+OpenCv(显示图像)
- iReport 中使用 Chart 图
- .net学习之委托和事件
- 形行色色的下拉菜单(HTML/CSS JS方法 jQuery方法实现)
- sql多行转一行,以逗号隔开
- windows7旗舰版激活密钥永久版免费分享
- 尝鲜delphi开发android/ios_环境搭建
- Easyui 创建dialog的两种方式,以及他们带来的问题
- VS2010下WPF开发ARCGIS ENGINE 10的带Ribbon控件项目
- 在python&;numpy中切片(slice)
- Maven “Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.4:create...”问题总结
- nginx + tomcat 反向代理
- Live2D插件--漂浮的二次元小姐姐
- flutter Row 垂直或水平放置多个widget
- Atlas+Keepalived系列一:安装Atlas:
- Bloom Filter 数据结构去重
- 解决在word中不能使用输入法
- sys和os模块
- [leetcode]Best Time to Buy and Sell Stock @ Python
热门文章
- java栈、堆
- VB.net版机房收费系统——结账功能实现(调错与优化)
- Cocos2d-x Vector——vector iterators incompatible
- 嵌入式开发之davinci--- 8148/8168/8127 中的添加算饭scd 场景检测 代码实现
- C、C++混合编程之extern ";C";
- YTU 2209: 建立链表(线性表)
- Oracle:热备测试
- 第六届蓝桥杯C++B组省赛
- codeforces 667A A. Pouring Rain(水题)
- [Selenium] 如何在老版本的Chrome 浏览器上使用selenium