NOIP2012同余方程
描述
输入格式
输入只有一行,包含两个正整数a,b,用一个空格隔开。
输出格式
输出只有一行,包含一个正整数,包含一个正整数 ,包含一个正整数 x0,即最小正整数解。 输入据保证一定有解。
测试样例1
输入
3 10
输出
7
备注
对于 60% 的数据 2 ≤b≤50,000,000
对于 100%的数据 2 ≤a, b≤2,000,000,000NOIP2012-TG
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
ll euler_phi(ll x){
ll m = (ll)sqrt(x+0.5);
ll ans = x;
for(int i = ;i <= m;i++){
if(x % i == ){
ans = ans / i * (i-);
while(x % i == ) x /= i;
}
}
if(x > ) ans = ans / x * (x-);
return ans;
}
ll q_mul(ll a,ll b,ll p){
ll ans = ;
while(b){
if(b&){
ans = (ans + a) % p;
b--;
}
b >>= ;
a = (a + a) % p;
}
return ans;
}
ll q_pow(ll a,ll b,ll p){
ll ans = ;
while(b){
if(b&){
ans = q_mul(ans,a,p);
}
b >>= ;
a = q_mul(a,a,p);
}
return ans;
}
void exgcd(ll a,ll b,ll& d,ll& x,ll& y){
if(b == ){
x = ;
y = ;
d = a;
return;
}
exgcd(b,a%b,d,y,x);
y -= (a/b)*x;
}
int phi[];
void phi_table(int n){
for(int i = ;i <= n;i++) phi[i] = ;
phi[] = ;
for(int i = ;i <= n;i++) if(!phi[i])
for(int j = i;j <= n;j+=i){
if(!phi[j]) phi[j] = j;
phi[j] = phi[j] / i * (i-);
}
}
int main(){
ll a,b,d,x,y;
cin>>a>>b;
cout<<q_pow(a,euler_phi(b)-,b);
return ;
}
NOIP2012同余方程的更多相关文章
- 一本通1632【 例 2】[NOIP2012]同余方程
1632:[ 例 2][NOIP2012]同余方程 时间限制: 1000 ms 内存限制: 524288 KB [题目描述] 求关于 x 的同余方程 ax≡1(mod b) 的最小正整 ...
- 1265. [NOIP2012] 同余方程
1265. [NOIP2012] 同余方程 ★☆ 输入文件:mod.in 输出文件:mod.out 简单对比 时间限制:1 s 内存限制:128 MB [题目描述] 求关于 x 的同余 ...
- 1632:【 例 2】[NOIP2012]同余方程
#include<bits/stdc++.h> #define ll long long using namespace std; void Exgcd(ll a,ll b,ll & ...
- [NOIP2012] 同余方程(第三次考试大整理)
1265. [NOIP2012] 同余方程 输入文件:mod.in 输出文件:mod.out 简单对比 时间限制:1 s 内存限制:128 MB [题目描述] 求关于 x 的同余方程 ax ...
- NOIP2012同余方程[exgcd]
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开 输出格式: 输出只有一行,包含一个正整 ...
- NOIP2012 同余方程-拓展欧几里得
题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行,包含一个正 ...
- 【codevs1200】 NOIP2012—同余方程
codevs.cn/problem/1200/ (题目链接) 题意 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. Solution 这道题其实就是求${a~mod~b}$的逆元 ...
- 【扩展欧几里得】Codevs 1200: [noip2012]同余方程
Description 求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解. Input Description 输入只有一行,包含两个正整数 a, b,用 一个 空格隔开. Outpu ...
- NOIP2012 同余方程
1同余方程 题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输出只有一行 ...
随机推荐
- shell中export理解误区
一直以来,以为shell脚本中经过export后的变量会影响到执行这个shell的终端中的环境变量.环境变量这个概念不是shell所独有的,而是linux里面进程所拥有的,shell解释器运行起来就是 ...
- MongoDb 创建、更新以及删除文档常用命令
mongodb由C++写就,其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理.关于它的一个最简洁描述为:scalable, high-performance, o ...
- [转]不优雅的方式处理 xlrd 中 int/float 的问题
原址:http://blog.chedushi.com/archives/7258 最近在用 xlrd 写一个题库自动导出的程序,但碰到一个比较 ugly 的问题. 程序要求是将 xls 文件中的数据 ...
- [WPF系列]-Adorner
简介 通常我们想对现有的控件,做些修饰时我们就会想到一个装饰模式.WPF中也提供了这样的实现思路:通过将Adorner添加到AdornerLayer中来实现装饰现有控件的效果.如图示: 本来T ...
- [WPF系列]-Data Validation
项目经常前台界面涉及到用户输入时,我们常常会用到数据有效性的验证.在网页中我们之前用js来校验Form中的数据有效性.在WPF中我们如何实现这种验证机制了?答案:INotifyDataErrorInf ...
- Java程序生成exe可执行文件详细教程(图文说明)
ava程序打包成exe可执行文件,分为两大步骤. 第一步:将Java程序通过Eclipse或者Myeclipse导成Jar包 第二步:通过exe4j讲Jar包程序生成exe可执行文件 第一步详解: 将 ...
- Ubuntu1604中mysql的登录问题
自从Ubuntu 1604出来后,新安装了尝试了下,在安装到mysql的时候用root登录不了,在网上查了很多资料都没找到解决办法.后来su到系统的root后直接就可以登录mysql了,看到Ubunt ...
- WinCE项目应用汇总
虚拟仪器(VI) RM905a+医用放射性核素活度计 RM905a+活度计远程检定方法研究 车载导航
- flush和reflush
/** * jpa 中的reflush 同 hibernate 中 Session 的 refresh 方法. * * reflush 会强制发送sql查询(select)语句,使缓存中的数据和数据库 ...
- 第50课 关于对话框(About)
1. 关于对话框 (1)标准的桌面应用软件都有一个关于对话框 (2)关于对话框用于标识软件自身的信息.如logo.项目名.版本号.开发者信息.版权信息.联系方式等. 2. 经典设计方案 3. 项目持续 ...