这道题很有意思

我们解过线性同余方程,也解过同余方程

这个则是求x^2≡1 (mod p)

可以将问题转化为(x-1)(x+1)≡0 (mod p)

然后我们穷举一下p的约数i,

看i|x-1,p/i|x+1 或者i|x+1, p/i|x-1是否可行解

然后排序去重即可

 var ans:array[..] of longint;
    a,n,i,b,t:longint;
    j:int64; procedure sort(l,r:longint);
  var i,j,x,y:longint;
  begin
    i:=l;
    j:=r;
    x:=ans[(l+r) shr ];
    repeat
      while ans[i]<x do inc(i);
      while x<ans[j] do dec(j);
      if not(i>j) then
      begin
        y:=ans[i];
        ans[i]:=ans[j];
        ans[j]:=y;
        inc(i);
        j:=j-;
      end;
    until i>j;
    if l<j then sort(l,j);
    if i<r then sort(i,r);
  end; begin
  readln(n);
  for i:= to trunc(sqrt(n)) do
    if n mod i= then
    begin
      b:=n div i;
      j:=;
      while j<=n do
      begin
        if (j+) mod i= then
        begin
          inc(t);
          ans[t]:=j;
        end;
        j:=j+b;  //保证x-是b的倍数
      end;
      j:=b-;
      while j<=n do
      begin
        if (j-) mod i= then
        begin
          inc(t);
          ans[t]:=j;
        end;
        j:=j+b;
      end;
    end;
  sort(,t);
  for i:= to t do
    if ans[i]<>ans[i-] then writeln(ans[i]);
end.

bzoj1406的更多相关文章

  1. BZOJ1406 [AHOI2007]密码箱 数论

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1406 题意概括 求所有数x,满足 x<n 且 x2≡1 (mod  n). n<=2 ...

  2. [BZOJ1406][AHOI2007]密码箱(数论)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1406 分析: (x+1)(x-1)是n的倍数 于是可以把n分解成n=ab,则a为(x+ ...

  3. 【BZOJ-1406】密码箱 约数 + 乱搞 + set?

    1406: [AHOI2007]密码箱 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1143  Solved: 677[Submit][Status][ ...

  4. bzoj1406: [AHOI2007]密码箱

    数学. x^2 % n = 1 则 (x+1)(x-1) = kn. 设 x+1 = k1*n1, x-1=k2*n2. 则 k1*k2=k , n1*n2=n. 算出每个大于sqrt(n)的约数,然 ...

  5. [BZOJ1406]密码箱

    Problem 给你1个数n,求出0 ≤ x < n,并且x ^ 2 % n = 1 Solution x ^ 2 - 1 = kn,(x - 1) * (x + 1) = kn 所以枚举n的约 ...

  6. 2018.12.17 bzoj1406 : [AHOI2007]密码箱(简单数论)

    传送门 简单数论暴力题. 题目简述:要求求出所有满足x2≡1mod&ThinSpace;&ThinSpace;nx^2\equiv1 \mod nx2≡1modn且0≤x<n0\ ...

  7. 【bzoj1406】 AHOI2007密码箱 数论

    在一次偶然的情况下,小可可得到了一个密码箱,听说里面藏着一份古代流传下来的藏宝图,只要能破解密码就能打开箱子,而箱子背面刻着的古代图标,就是对密码的提示.经过艰苦的破译,小可可发现,这些图标表示一个数 ...

  8. 【bzoj1406】[AHOI2007]密码箱

    x2 ≡ 1 mod n => x2 = k * n + 1 => n | (x + 1) * (x - 1) 令n = a * b,则 (a | x + 1 且 b | x - 1) 或 ...

  9. [转载]hzwer的bzoj题单

    counter: 664BZOJ1601 BZOJ1003 BZOJ1002 BZOJ1192 BZOJ1303 BZOJ1270 BZOJ3039 BZOJ1191 BZOJ1059 BZOJ120 ...

随机推荐

  1. pb popmenu弹出式选单位置的问题

    在主界面上使用m_main.m_title.PopMenu(PointX(),PointY()),可以正确定位弹出式选单的位置: 在主界面的控件智商为使用m_main.m_title.PopMenu( ...

  2. JQuery的几种页面加载完执行三种方式

      jquery加载页面的方法(页面加载完成就执行) 1. $(function(){ $("#a").click(function(){ //adding your code h ...

  3. OC加强-day06

    #program mark - 08 NSMutableDictionary的使用 [掌握] "/08 NSMutableDictionary的使用/1_练习 "练习 1.小明的身 ...

  4. 初尝 Perl

    本文将阐述以下几方面内容: 1.什么是Perl 2.Perl有什么用 3.Windows 下的Perl环境搭建 4.Perl 版Hello World 5.Perl 语法梗概 6.一些参考资料 什么是 ...

  5. C++ Union妙用(将列表初始化用于数组元素)

    Union是个不被注意的关键字,意为联合体,这是个诡异的名字.若不是为了继承C语言,它也不会出现在C++中(虽说,union在C++中得到了扩充,完成了接近类的功能).它的作用主要是节省内存空间,在嵌 ...

  6. tar 命令基本使用(加密)

    本文讲述tar命令的基本使用,special: 使用tar命令对文件加密. 假定在当前目录下有一个文件夹/stuff. 1.将/stuff目录下的所有文件打包成为.tar 文件. $ tar -cvf ...

  7. Eclipse 和 Intellij idea 快捷键的区别

    描述 Eclipse IntelliJ 代码补全 Ctrl+space ctrl+space 打开类或者接口 (两个IDE都支持使用“驼峰字符”前缀的方式来过滤查找列表,进而轻松完成搜索:比如:可以使 ...

  8. 03_天气查询_socket方式模拟_多线程方式

    [简述] 要重视Socket开发,企业后台服务特长使用Socket. 1.服务端要有可持续运行能力,保证线程一致在运行 2.并发处理能力,使用多线程 [工程截图] [WeatherRunner.jav ...

  9. 系统监控的一些工具w , vmstat

    w 命令:--w 查看的是系统整体上的负载 # w 15:23:46 up 3:34, 2 users, load average: 0.03, 0.05, 0.00 USER TTY FROM LO ...

  10. css中 中文字体(font-family)的标准英文名称

    Mac OS的一些: 华文细黑:STHeiti Light [STXihei] 华文黑体:STHeiti 华文楷体:STKaiti 华文宋体:STSong 华文仿宋:STFangsong 儷黑 Pro ...