1406: [AHOI2007]密码箱

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 1629  Solved: 967
[Submit][Status][Discuss]

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满足

(x+1)(x-1)==kn

暴力枚举n的因子,设y|n

那么当(x+1)和(x-1)一个是y的倍数,一个是n/y的倍数,那么x就符合要求

#include<stdio.h>
#include<set>
using namespace std;
#define LL long long
set<LL> st;
int main(void)
{LL n, i, a, b, j;set<LL>::iterator it;scanf("%lld", &n);for(i=1;i*i<=n;i++){if(n%i==0){a = i, b = n/i;for(j=0;j<=n;j+=b){if(j-2>=0 && (j-2)%a==0)st.insert(j-1);if(j+2<n && (j+2)%a==0)st.insert(j+1);}}}if(st.size()==0)printf("None\n");else{for(it=st.begin();it!=st.end();it++)printf("%lld\n", *it);}return 0;
}

bzoj 1406: [AHOI2007]密码箱相关推荐

  1. BZOJ 1406 密码箱(数论)

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

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

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

  3. 2019.5.summary

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

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

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

  5. BZOJ刷题记录---提高组难度

    BZOJ刷题记录---提高组难度 总目录详见https://blog.csdn.net/mrcrack/article/details/90228694 序号 题号 算法 思想难度 实现难度 总难度 ...

  6. 【业界偷懒】【Public】BZOJ题目一句话题解整理

    转发[Hzwer]: 就当是复习一下自己做过的题,顺便提供一个简要题解给大家看. 做题时候实在想不出来看一下一句话题解,可以有一个提示的作用又不至于一下子知道了全部浪费了一道题吧.. 部分题目(如我A ...

  7. 【醒目】【业界偷懒】【Public】BZOJ题目一句话题解整理

    就当是复习一下自己做过的题,顺便提供一个简要题解给大家看. 做题时候实在想不出来看一下一句话题解,可以有一个提示的作用又不至于一下子知道了全部浪费了一道题吧.. 部分题目(如我A过得大部分奶牛题)是别 ...

  8. BZOJ.1558.[JSOI2009]等差数列(线段树 差分)

    BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...

  9. S-T平面图中利用最短路求最小割(BZOJ 1001)

    BZOJ 1001: [BeiJing2006]狼抓兔子 最小割 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 现在小朋友们最喜欢 ...

最新文章

  1. 2022-2028年中国医学模拟教育产品市场供需现状及投资战略研究报告
  2. echarts空数据如何设置_拼多多分时折扣如何设置优化?分时数据怎么看?
  3. “Hello,Jetpack”:构建您的第一个Jetpack应用程序
  4. 如何更改github工程的语言属性
  5. JDK1.5 与 JDK1.6的新特性
  6. kotlin学习之嵌套类和内部类(六)
  7. Maven 搭建多模块企业级项目
  8. 1003 我要通过!(20)(20 分)
  9. Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验
  10. 540.有序数组中的单一元素
  11. python中while的特点_Python【2】:初入python 用户输入,if,(while 循环)
  12. Codeup_575A_剩下的树
  13. poi导出word模板项目实例(一个文件)
  14. 设某链表中最常用的操作是在链表的尾部_面试官:“双向链表”都不会,谁给你跳槽的勇气?...
  15. Atitit 流水线子线程异常处理 1.1. 大概原理是 FutureTask排除异常 FutureTask.get can throw ExecutionException,can catc
  16. js vue echarts 前端绘制 cie1931 马蹄图 色度图
  17. Java Word工具类--之Gradle项目创建
  18. javascript原生移动云编程1 - 十分钟做出跨平台原生App
  19. 初次面试初生牛犊不怕虎,居然觉得面试就是聊天?
  20. android 短信打开APP

热门文章

  1. python基础教程菜鸟教程-python基础菜鸟教程,Python的基础语法
  2. python零基础学习书-Python零基础到进阶必读的书藉:Python学习手册pdf免费下载
  3. 干货|详解最新语音识别框架 深度全序列卷积神经网络
  4. 分享 | 开源的中文语音识别系统
  5. 语音识别系统市场前景及发展趋势
  6. react周期函数介绍
  7. ffmbc——为广播电视以及专业用途量身定制的FFmpeg
  8. 开源视频监控系统:iSpy
  9. python pandas dataframe 不显示索引_python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)...
  10. mysql 本地热备_MySQL 数据库热备的操作