Description
在一次偶然的情况下,小可可得到了一个密码箱,听说里面藏着一份古代流传下来的藏宝图,只要能破解密码就能打开箱子,而箱子背面刻着的古代图标,就是对密码的提示。经过艰苦的破译,小可可发现,这些图标表示一个数以及这个数与密码的关系。假设这个数是n,密码为x,那么可以得到如下表述: 密码x大于等于0,且小于n,而x的平方除以n,得到的余数为1。 小可可知道满足上述条件的x可能不止一个,所以一定要把所有满足条件的x计算出来,密码肯定就在其中。计算的过程是很艰苦的,你能否编写一个程序来帮助小可可呢?(题中x,n均为正整数)
Input
输入文件只有一行,且只有一个数字n(1<=n<=2,000,000,000)。
Output
你的程序需要找到所有满足前面所描述条件的x,如果不存在这样的x,你的程序只需输出一行“None”(引号不输出),否则请按照从小到大的顺序输出这些x,每行一个数。
Sample Input
12

Sample Output
1

5

7

11

化简一下式子。

(x+1)(x-1)=k*n

x+1=k1n1 x-1=k2n2 k1k2=k n1n2=n

那么我们枚举n的大于根号n的因子n1,然后枚举一个k1,之后把k1n1分别作为x+1和x-1来求解,看一看求出的另一个

是否是n/n1的倍数,注意用set去重。

//BZOJ 1406#include <bits/stdc++.h>
using namespace std;set <long long> s;
long long n;int main(){scanf("%lld", &n);if(n==1){printf("None\n");return 0;}s.insert(1);for(int i = 1; i*i <= n; i++){if(n%i==0){long long b = n/i;for(long long i = b; i<=n; i+=b){if((i+2)*i%n==0) s.insert(i+1);if((i-2)*i%n==0) s.insert(i-1);}}}set <long long>::iterator it;for(it = s.begin(); it!=s.end(); it++){if(*it>n) continue;printf("%lld\n", *it);}
}

BZOJ 1406: [AHOI2007]密码箱 数论相关推荐

  1. bzoj 1406: [AHOI2007]密码箱

    1406: [AHOI2007]密码箱 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1629  Solved: 967 [Submit][Status ...

  2. BZOJ1406: [AHOI2007]密码箱 数论

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

  3. BZOJ 1406 密码箱(数论)

    很简洁的题目.求出x^2%n=1的所有x<=n的值. n<=2e9. 直接枚举x一定是超时的. 看看能不能化成有性质的式子. 有 (x+1)(x-1)%n==0,设n=a*b,那么一定有x ...

  4. 【刷题】BZOJ 4176 Lucas的数论

    Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i< ...

  5. BZOJ 2277 Poi2011 Strongbox 数论

    题目大意:给定n和k个整数,求mod n加法下的群G的一个子群G',满足a[1]~a[k-1]都不在群中而a[k]在群中 首先易证G'一定是一个循环群 证明:显然若a在群中则a的逆元在群中 那么我们就 ...

  6. 2019.5.summary

    2019.5.1 CF C. Prefix Sum Primes 感觉CF就是训练妳如何养成对题目强大的YY能力的QAQ 我们构造 如果只有一种,没辙,只能这样放 否则先放一个2,再放一个1 接下来把 ...

  7. 算法笔记——数学相关

    算法笔记--数学相关 高精度 乘法逆元 排列组合 二项式定理 质数的判定和应用 约数 拓展欧几里得 大步小步算法(BSGS) 拓展大步小步算法 快速乘和快速幂 矩阵相关 欧拉函数 欧拉定理及费马小定理 ...

  8. 浅谈积性函数求前缀和

    转载至https://blog.csdn.net/skywalkert/article/details/50500009 前置技能 积性函数的定义 若f(n)f(n)的定义域为正整数域,值域为复数,即 ...

  9. ACM里的生成函数初探

    生成函数 前情提要:由于本人不太喜欢写博客(懒),所以写的时候一般是由于某些原因写的专题内容.这次是2020CCPC长春热身赛的D题没做出来. 大佬论文放前面:推荐阅读:毛杰明 母函数的性质及应用 基 ...

  10. 知识点 - 数论函数导论

    知识点 - 数论进阶 abstract:整除分块,积性函数,线性筛,莫比乌斯反演,迪利克雷卷积,积性函数前缀和,杜教筛,阁洲筛,min_25筛 0.引入 Gym - 101485D debugging ...

最新文章

  1. android button背景随心搭配
  2. [BZOJ 2425] 计数
  3. linux 安装windows字库,Linux安装windows字体
  4. 男性早孕-从软件与程序的区别说起
  5. 男人“杀”死女人的30句话
  6. 【图像处理】MATLAB:表示与描述
  7. Qt编程之QtScript
  8. 数据库系统概论(第5版)学习笔记第1章 1.1——数据库系统概论
  9. selenium系列--测试脚本--将Excel文件用于测试(unittest数据驱动实战)
  10. java struts2教程_Struts2学习教程之入门小白的开始基础
  11. 前端之路--第三周学习
  12. JS中经纬度的正则表达式(亲测有效)
  13. c语言面向对象:队列 (先进先出,后进先出)
  14. aloha仿真matlab,ALOHA协议的MATLAB仿真开题报告(参考).doc
  15. python画k线_python画k线,python绘制动态k线及均线
  16. 专著《Python与开源GIS:数据处理、空间分析》
  17. JS的onBlur事件与onfocus事件
  18. EBGP环回口邻居建立不了的原因
  19. PowerBI-时间智能函数-PREVIOUS系列
  20. html文字加描边效果,怎么用css给文字加描边?

热门文章

  1. matlab2012仿真电路图,cuk电路matlab仿真 - 全文
  2. 数值分析 解线性方程组的编程实现(Hilbert)
  3. 惠普服务器显示器接口类型,介绍:目前显示器主要接口
  4. 二维向量叉乘的简单介绍及应用
  5. 通信电源常见故障与处理
  6. meanshift跟踪算法
  7. 【单片机】2.1 AT89S52单片机的硬件组成
  8. EasyCamera Android安卓移动视频监控单兵设备接入EasyDarwin开源流媒体云平台
  9. 全国计算机二级ps考什么,计算机二级ps考试内容有哪些
  10. 数据结构之平衡二叉树详解