欧拉函数。

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MAXSIZE 100003
#define N 100003
using namespace std; long long prime[];
long long flag[];
long long cn; void sushu()
{
memset(flag,,sizeof(flag));
cn=;
long long i,j;
for (i=;i<MAXSIZE+;i++)
{
if(!flag[i])
prime[cn++]=i;
for(j=;(j<cn)&&(prime[j]*i<MAXSIZE+);j++)
{
flag[i*prime[j]]=;
} }
}
long long fast(long long a,long long p,long long m)
{
long long r,k;
if(p==)
return %m;
else if(p==)
return a%m;
r=a%m;
k=;
while(p>)
{
if((p&)!=)
k=(k*r)%m;
r=(r*r)%m;
p>>=;
}
return (r*k)%m;
}
long long fac(long long m)
{
long long i,res=;
for(i=m;i>=;i--)
res*=i;
return res;
}
long long ola(long long n)
{
long long i,n1=n;
long long res=n;
for(i=;(i<cn)&&prime[i]*prime[i]<=n;i++)
{
if(n%prime[i]==)
{
res=res/prime[i]*(prime[i]-);
while(n1%prime[i]==)
n1/=prime[i];
}
}
if(n1!=)
res=res/n1*(n1-);
return res;
}
long long solve(long long a,long long m)
{
if(m==)
return ;
else
{
long long tmp=ola(m); //phi[m]; //euler(m);
return fast(a,tmp,m)*fast(a,solve(a,tmp),m);
}
} int main()
{
long long m,m1;
long long p;
sushu();
bool tag=false;
while(scanf("%lld%lld",&p,&m1)!=EOF)
{
if(tag)
{
puts("");
}
else tag=true;
m=fac(m1);
printf("%lld\n",solve(p,m)%m);
}
return ;
}

ZOJ 2674 Strange Limit的更多相关文章

  1. ZOJ 3332 Strange Country II

    Strange Country II Time Limit: 1 Second      Memory Limit: 32768 KB      Special Judge You want to v ...

  2. zoj 2176 Speed Limit

    Speed Limit Time Limit: 2 Seconds      Memory Limit: 65536 KB Bill and Ted are taking a road trip. B ...

  3. ZOJ 3332 Strange Country II (竞赛图构造哈密顿通路)

    链接:http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3332 本文链接:http://www.cnblogs.com/Ash-l ...

  4. ZOJ - 3265: Strange Game (优化 二分图匹配)

    pro:有一个长度为N的数组a[i],要求选择k[i]>0,使得b[i]=a[i]^k[i]%M中出现的不同数最多.N<=200, M<=1e9: sol:a^x%p的个数的有限的, ...

  5. ZOJ问题(坑死了)

    ZOJ问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  6. ZOJ问题--hdu3788

    ZOJ问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  7. HDU 3788 和九度OJ 1006测试数据是不一样的

    ZOJ问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  8. 开源评测系统hustoj-代码解读

    非常感谢zhblue贡献了这么美丽的代码 为了开发适合自己学校的oj,努力研读代码中,不断的百度,调试,测试 对ubutun,linux的各种文件系统,进程系统,c编程都学习了不少 给大家分享下,希望 ...

  9. ZOJ 3430 Detect the Virus

    传送门: Detect the Virus                                                                                ...

随机推荐

  1. [zz] JIT&HotSpot

    zz from 百度百科 最早的Java建置方案是由一套转译程式(interpreter),将每个Java指令都转译成对等的微处理器指令,并根据转译后的指令先后次序依序执行,由于一个Java指令可能被 ...

  2. 移除NDK方法

    以下内容由:于伟建 提供 删除.project中的以下字段基本都是有cdt关键字的位置 删除.cproject然后重启eclipse,clean,重新编译我这里还有错误,就手动删了gen 删除包含cd ...

  3. chenxi的html学习笔记

    0.本文主体源自:http://www.cnblogs.com/coco1s/p/4034937.html,有兴趣的可以直接去那里看,也可以看看我整理加拓展的.1.浏览器内核: 1.ie:triden ...

  4. 关于在EXCEL中输入01-01-01被转换为2001/1/1怎么解决

    当向EXCEL写入类似'01-01-01'或'01-01'这样的数据时,打开EXCEL时会发现数据变成了2001/1/1和1月1日. 这是由于EXCEL自动转换功能,我们得要在输入前多加一个’号. 而 ...

  5. SAP内存/ABAP内存/共享内存区别

    (1).读取和使用方法不同SAP内存使用SET/GET parameters方法:SET PARAMETER ID 'MAT' field p_matnr.GET PARAMETER ID 'MAT' ...

  6. CRM 2013 Reporting Extensions for SSRS 安装及问题解决

    说明一下 Reporting Extensions for SSRS 安装过程. 安装目录在安装目录下 SrsDataConnector 下.如果是CRM 2013安装中运行,可以跳过此步. 此外在说 ...

  7. Upgrade custom workflow in SharePoint

    Experience comes when you give a try or do something, I worked in to many SharePoint development pro ...

  8. 实践GTD三周年后的体会

    从2011年7月开始实践GTD到现在已经3年多了,按照年初设定的目标,应该写点GTD的体会,但提起笔来的时候却发现并没有什么太新的体会,大部分体会都已经在以前的文章中写到了,甚至有些流程已经简化了,看 ...

  9. Objective-C之代理设计模式小实例

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  10. 集线器hub、交换机switch、路由器router 的区别

    原文链接:http://blog.csdn.net/thq0201/article/details/7782319 首先说HUB,也就是集线器.它的作用可以简单的理解为将一些机器连接起来组成一个局域网 ...