Timus 1204 Idempotents
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1204
题目描述:
x*x ≡ x (mod n) ,求解所有满足该式的x值,其中n为两个不同的素数的积,并且有x<n;
那么假设n=p*q,且 x mod n = x, 然后易得到 x*x = a*n + x,则 x(x-1) = a*n, 则必有两个解0和1
故剩余情况等价于求 a1*p + a2*q = 1的解,其中a1*a2=-a(a !=0 )
为扩展的欧几里得了,其中为正的一项为解,还有一个解即增一次即可,两次则会超过n,故有且仅有4个解。
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 using namespace std ; 5 6 const int MAXM = 100000 ; 7 int k, n ; 8 int prims[MAXM], totals ; 9 bool is_prim[MAXM] ; 10 11 void init(){ 12 memset(is_prim, true, sizeof(is_prim)) ; 13 totals = 0 ; 14 for( int i = 2; i < MAXM; i++ ){ 15 if( is_prim[i] ){ 16 for( int j = 2; j*i < MAXM; j++ ) is_prim[i*j] = false ; 17 prims[totals++] = i ; 18 } 19 } 20 } 21 22 void extGcd(int& x, int& y, int p, int q){ 23 if( q == 0 ){ 24 x = 1, y = 0 ; 25 return ; 26 } 27 extGcd(x, y, q, p%q) ; 28 int t = y ; 29 y = x - (p/q)*y ; 30 x = t ; 31 } 32 33 void solve(){ 34 cout << "0 1 " ; 35 int p, q ; 36 for( int i = 0; i < totals && prims[i]*prims[i] < n; i++ ){ 37 if( n % prims[i] == 0 ) p = prims[i], q = n / prims[i] ; 38 } 39 int x, y ; 40 extGcd(x, y, p, q) ; 41 if( x > 0 ){ 42 cout << x*p << " " << (y+p)*q << endl ; 43 }else{ 44 cout << y*q << " " << (x+q)*p << endl ; 45 } 46 } 47 48 int main(){ 49 //freopen("1234.txt", "r", stdin) ; 50 cin >> k ; 51 init() ; 52 while( k-- ){ 53 scanf("%d", &n) ; 54 solve() ; 55 } 56 return 0 ; 57 }
转载于:https://www.cnblogs.com/be-saber/p/5374570.html
Timus 1204 Idempotents相关推荐
- Timus 1837. Isenbaev's Number
Timus 1837. Isenbaev's Number 要求计算 Isenbaev 数. 1837. Isenbaev's Number Time Limit: 0.5 second Memory ...
- Timus 1049 Brave Balloonists
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1049 题目描述: 题目大意为给定10个数,然后求这10个数之积所对应的数的所有正因子的个 ...
- Timus题目中测试数据数量的计算
在Timus的题目中,测试数据大小经常表示为"A size of the input stream does not exceed 256 KB." 那么我们就要清楚txt文件大小 ...
- Timus Online Judge:ural:1006. Square Frames
原题链接:http://acm.timus.ru/problem.aspx?space=1&num=1006 看到题第一反应:这玩意怎么读入-- 本地的话因为是全角字符,会占两个位置,所以需要 ...
- URAL1204. Idempotents(扩展欧几里得)
1204 大体推推 会出来这个式子 x(x-1) = k*n;n = p*q ;x(x-1)%(p*q)==0; 因为p,q都为素数 那也就是说x和x-1中必定包含这两个数 而且一个里面只能有一个 不 ...
- 3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息
跟踪标记:1204/1222 功能及用途: 捕获SQL Server死锁信息,并自动存放到错误日志(ERRORLOG)中. 举例: USE tempdb GO CREATE TABLE t1(id i ...
- Timus 1114. Boxes
Timus 1114. Boxes 要求计算出将两种颜色的球放到盒子中的各种组合的数目. 1114. Boxes Time Limit: 0.6 second Memory Limit: 16 MB ...
- 信息学奥赛一本通(1204:爬楼梯)
1204:爬楼梯 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 15480 通过数: 8078 [题目描述] 树老师爬楼梯,他可以每次走1级或者2级,输入 ...
- css外观样式 1204
css外观样式 1204 颜色的表达方式 英文单词 十六进制 rgb(红,绿,蓝) 背景颜色属性 background-color:颜色 文字水平对齐 text-align:left|center|r ...
最新文章
- 新型支架状电极允许人类思想操作计算机
- DPI — Application Assurance — Overview
- 成功解决ImportError: cannot import name ‘Imputer‘
- 详解TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)
- @RequestBody 和 @RequestParam可以同时使用
- k8s核心技术-Helm(自定义chart部署)---K8S_Google工作笔记0047
- 英特尔玩VR有多认真?看看Project Alloy的细节就知道了
- uip UDP 服务器广播模式(客户端可以任意端口,并且主动向客户端发送数据) (转)...
- 广东省地方税务局电子办税服务厅--卡在注册ca证书界面的处理
- 智能控制导论 # 模糊控制 2 模糊控制器的原理与设计方法
- 树品短视频源码,抖音SEO源码,筷子SaaS智能源码,牛视短视频seo源码
- 含金量高文科竞赛信息资料
- python eof是什么_EOF错误python
- 用html js制作迷宫,JavaScript生成随机迷宫详解
- js 原生将元素插入到父元素首位,jquery和原生两种方式
- DNSPod十问侯家文:如何为中小企业的网络安全保驾护航?
- 思科交换机创建子接口
- indexedDB使用
- java 格式化日期到毫秒_关于日期:Java – SimpleDateFormat格式化程序,以毫秒为单位返回纪元时间...
- Matlab应变片仿真,应变片传感器的应用.ppt
热门文章
- TCP:传输控制协议简单讲解(八)
- Java 面试经典题解析:谈谈你对 Java 平台的理解?
- [Python]网络爬虫(三):异常的处理和HTTP状态码的分类
- GitHub:基于epoll机制的高并发聊天室,c语言实现
- 【Scratch】青少年蓝桥杯_每日一题_1.17_春夏秋冬四季
- 【Python】青少年蓝桥杯_每日一题_10.11_小球反弹
- 天津php二次开发培训,天津PHP后台开发培训短期班
- 通过设计绿色数据中心寻求循环经济
- 弱电工程网络传输基础知识讲解
- 火神山医院紧急招募IT运维志愿者需求