zoukankan      html  css  js  c++  java
  • BZOJ1406 [AHOI2007]密码箱

    什么神奇的数论题。。。

    x2 ≡ 1 (mod n)      =>

    x2 = k * n + 1        =>

    n | (x + 1) * (x - 1)

    令n = a * b,则

    (a | x + 1 且 b | x - 1) 或 (a| x - 1 且 b | x + 1)

    于是暴力枚举a ∈ [1, sqrt(n)] 就好了

    我比较懒,直接存到set里去了

     1 /**************************************************************
     2     Problem: 1406
     3     User: rausen
     4     Language: C++
     5     Result: Accepted
     6     Time:36 ms
     7     Memory:808 kb
     8 ****************************************************************/
     9  
    10 #include <cstdio>
    11 #include <set>
    12  
    13 using namespace std;
    14 typedef long long ll;
    15 typedef set <ll> :: iterator ITER;
    16  
    17 set <ll> S;
    18 ll n;
    19  
    20 int main() {
    21   int i, k;
    22   ll a, b, x;
    23   scanf("%lld
    ", &n);
    24   for (i = 1; i * i <= n; ++i)
    25     if (n % i == 0) {
    26       a = i, b = n / i;
    27       for (k = 0; (x = b * k + 1) < n; ++k)
    28     if ((x + 1) % a == 0)
    29       S.insert(x);
    30       for (k = 1; (x = b * k - 1) < n; ++k)
    31     if ((x - 1) % a == 0)
    32       S.insert(x);
    33     }
    34   for (ITER it = S.begin(); it != S.end(); ++it)
    35     printf("%lld
    ", *it);
    36   return 0;
    37 }
    View Code
    By Xs酱~ 转载请说明 博客地址:http://www.cnblogs.com/rausen
  • 相关阅读:
    浏览器兼容性优化
    js操作table(增加行,删除行,上移,下移,复制行)
    褚时健传读后感
    新鞋
    八达岭奥莱
    springMVC 多方法controller
    springMVC入门配置及helloworld实例
    springMVC源码下载地址
    spring3mvc与struts2比较
    hql语句拼接的替换方式
  • 原文地址:https://www.cnblogs.com/rausen/p/4294382.html
Copyright © 2011-2022 走看看