题目链接: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相关推荐

  1. Timus 1837. Isenbaev's Number

    Timus 1837. Isenbaev's Number 要求计算 Isenbaev 数. 1837. Isenbaev's Number Time Limit: 0.5 second Memory ...

  2. Timus 1049 Brave Balloonists

    题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1049 题目描述: 题目大意为给定10个数,然后求这10个数之积所对应的数的所有正因子的个 ...

  3. Timus题目中测试数据数量的计算

    在Timus的题目中,测试数据大小经常表示为"A size of the input stream does not exceed 256 KB." 那么我们就要清楚txt文件大小 ...

  4. Timus Online Judge:ural:1006. Square Frames

    原题链接:http://acm.timus.ru/problem.aspx?space=1&num=1006 看到题第一反应:这玩意怎么读入-- 本地的话因为是全角字符,会占两个位置,所以需要 ...

  5. URAL1204. Idempotents(扩展欧几里得)

    1204 大体推推 会出来这个式子 x(x-1) = k*n;n = p*q ;x(x-1)%(p*q)==0; 因为p,q都为素数 那也就是说x和x-1中必定包含这两个数 而且一个里面只能有一个 不 ...

  6. 3. 跟踪标记 (Trace Flag) 1204, 1222 抓取死锁信息

    跟踪标记:1204/1222 功能及用途: 捕获SQL Server死锁信息,并自动存放到错误日志(ERRORLOG)中. 举例: USE tempdb GO CREATE TABLE t1(id i ...

  7. Timus 1114. Boxes

    Timus 1114. Boxes 要求计算出将两种颜色的球放到盒子中的各种组合的数目. 1114. Boxes Time Limit: 0.6 second Memory Limit: 16 MB ...

  8. 信息学奥赛一本通(1204:爬楼梯)

    1204:爬楼梯 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 15480     通过数: 8078 [题目描述] 树老师爬楼梯,他可以每次走1级或者2级,输入 ...

  9. css外观样式 1204

    css外观样式 1204 颜色的表达方式 英文单词 十六进制 rgb(红,绿,蓝) 背景颜色属性 background-color:颜色 文字水平对齐 text-align:left|center|r ...

最新文章

  1. 新型支架状电极允许人类思想操作计算机
  2. DPI — Application Assurance — Overview
  3. 成功解决ImportError: cannot import name ‘Imputer‘
  4. 详解TCP协议的服务特点以及连接建立与终止的过程(俗称三次握手四次挥手)
  5. @RequestBody 和 @RequestParam可以同时使用
  6. k8s核心技术-Helm(自定义chart部署)---K8S_Google工作笔记0047
  7. 英特尔玩VR有多认真?看看Project Alloy的细节就知道了
  8. uip UDP 服务器广播模式(客户端可以任意端口,并且主动向客户端发送数据) (转)...
  9. 广东省地方税务局电子办税服务厅--卡在注册ca证书界面的处理
  10. 智能控制导论 # 模糊控制 2 模糊控制器的原理与设计方法
  11. 树品短视频源码,抖音SEO源码,筷子SaaS智能源码,牛视短视频seo源码
  12. 含金量高文科竞赛信息资料
  13. python eof是什么_EOF错误python
  14. 用html js制作迷宫,JavaScript生成随机迷宫详解
  15. js 原生将元素插入到父元素首位,jquery和原生两种方式
  16. DNSPod十问侯家文:如何为中小企业的网络安全保驾护航?
  17. 思科交换机创建子接口
  18. indexedDB使用
  19. java 格式化日期到毫秒_关于日期:Java – SimpleDateFormat格式化程序,以毫秒为单位返回纪元时间...
  20. Matlab应变片仿真,应变片传感器的应用.ppt

热门文章

  1. TCP:传输控制协议简单讲解(八)
  2. Java 面试经典题解析:谈谈你对 Java 平台的理解?
  3. [Python]网络爬虫(三):异常的处理和HTTP状态码的分类
  4. GitHub:基于epoll机制的高并发聊天室,c语言实现
  5. 【Scratch】青少年蓝桥杯_每日一题_1.17_春夏秋冬四季
  6. 【Python】青少年蓝桥杯_每日一题_10.11_小球反弹
  7. 天津php二次开发培训,天津PHP后台开发培训短期班
  8. 通过设计绿色数据中心寻求循环经济
  9. 弱电工程网络传输基础知识讲解
  10. 火神山医院紧急招募IT运维志愿者需求