欧拉函数。

#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. PHP系列之一traits的应用

    Traits 在PHP中实现在方法的重复使用:Traits与Class相似,但是它能够在Class中使用自己的方法而不用继承: Traits在Class中优先于原Class中的方法,引用PHP Doc ...

  2. Linux Shell系列教程之(十四) Shell Select教程

    本文是Linux Shell系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case ...

  3. Java的集合框架

    01.为什么要使用集合框架? 解析:如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象,那么可以使用Java集合框架. 如果启用集合的删除方法,那么集合中所有元素的索引会自动维护. 集合 ...

  4. spring中常用工具类介绍

    http://www.cnblogs.com/langtianya/p/3875103.html 文件资源操作     Spring 定义了一个 org.springframework.core.io ...

  5. Follow me to learn what is Unit of Work pattern

    Introduction A Unit of Work is a combination of several actions that will be grouped into a transact ...

  6. C++ 面向对象的三个特点--多态性(一)

    C++的多态性定义 所谓多态性就是不同对象收到相同的消息产生不同的动作.通俗的说,多态性是指一个名字定义不同的函数,这些函数执行不同但又类似的操作,即用同样的接口访问功能不同的函数,从而实现“一个接口 ...

  7. javascript函数中的三个技巧【二】

    技巧二: [惰性载入函数] 因为浏览器之间的行为的差异,我们经常会在函数中包含了大量的if语句,以检查浏览器特性,解决不同浏览器的兼容问题,比如,我们最常见的为dom节点添加时间的函数 functio ...

  8. Angular框架

    Angular 框架 Angular介绍 库和框架的区别 jQuery:库 库一般都是封装了一些常用的方法 自己手动去调用这些方法,来完成我们的功能 code $('#txt').val('我是小明' ...

  9. XML的文档声明

    1.XML的文档声明 <?xml version="1.0" encoding="utf-8"?> 文档声明必须写在第一行第一列 属性: versi ...

  10. JavaScript Array(数组)对象

    一,定义数组 数组对象用来在单独的变量名中存储一系列的值. 创建 Array 对象的语法: new Array(); new Array(size); new Array(element0, elem ...