1406: [AHOI2007]密码箱

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 670  Solved: 376
[Submit][Status]

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

思路:n|(x+1)*(x-1),设n=a*b,当a|(x-1)时验证b|(x+1),或者当a|(x+1)时验证b|(x-1).

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <stdlib.h>
#include <set>using namespace std;int main(){int n;scanf("%d",&n);set<int> s;int sum=(int)sqrt(n);for(int a=1;a<=sum;a++){if(n%a==0){int b=n/a;for(int x=1;x<=n;x+=b){if((x+1)%a==0){s.insert(x);}}for(int x=b-1;x<=n;x+=b){if((x-1)%a==0){s.insert(x);}}}}if(s.empty()) puts("None");while(!s.empty()){printf("%d\n",*s.begin());s.erase(s.begin());}return 0;
}


HYSBZ 1406 密码箱相关推荐

  1. BZOJ 1406 密码箱(数论)

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

  2. bzoj 1406: [AHOI2007]密码箱

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

  3. J - One-Dimensional HYSBZ - 4688

    J - One-Dimensional HYSBZ - 4688 Problem Description 考虑一个含有 N 个细胞的一维细胞自动机.细胞从 0 到 N-1 标号.每个细胞有一个被表示成 ...

  4. 如何解决Office2016安装时提示:错误1406。安装程序无法将值写入注册表项\.xlsx

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 一.当前问题 二.解决办法 一.当前问题 Office2016安装时提示:错误1406.安装程序无法将值写入注册表 ...

  5. 真正能解决 Windows 7下安装Office 2007—2010出现1402和1406类错误的方法

    真正能解决 Windows 7下安装Office 2007-2010出现1402和1406类错误的方法 天蚕 原创 2012-06-11 近日在网上下载了Windows7和Office2007,想将家 ...

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

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

  7. 陌上花开 HYSBZ - 3262 (CDQ分治)

    陌上花开 HYSBZ - 3262 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),用三个整数表示. 现在要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量. 定义一朵花A比另 ...

  8. 完全平方数 HYSBZ - 2440 (莫比乌斯函数容斥)

    完全平方数 HYSBZ - 2440 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些 数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而 这丝毫不影响他对其他 ...

  9. Light OJ 1406 Assassin`s Creed 减少国家DP+支撑点甚至通缩+最小路径覆盖

    标题来源:Light OJ 1406 Assassin`s Creed 意甲冠军:向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路:最少的的人能够走全然图 明显是最小路径覆盖问 ...

  10. HYSBZ - 1050(旅行comf 并查集Java实现)

    HYSBZ - 1050(旅行comf Java实现) 原题地址 解法:枚举每一条边,对于这条边,我们需要找到集合中和其值相差最小的最大边,这个集合是指与包括i边在内的ST联通集.对于这一要求,我们只 ...

最新文章

  1. 旷视唐文斌:你到底给谁创造了什么样的价值?AI产品灵魂拷问
  2. 通用异步 Windows Socket TCP 客户端组件的设计与实现
  3. JDK 14的新特性:文本块Text Blocks
  4. php asp.net 代码量少,.NET_asp.net 反射减少代码书写量, 复制代码 代码如下:public b - phpStudy...
  5. OpenCV实战【2】HOG+SVM实现行人检测
  6. 百度网盘空间调整:这类用户2TB变100GB!
  7. LabView学习笔记(八):属性节点
  8. java 处理unicode_java处理unicode字符
  9. 四通滑阀非对称液压缸matlab,基于MATLAB-simulink的液压系统动态仿真PPT课件
  10. android 用gridview,Android GridView的使用
  11. DOM操作简易年历案例
  12. 办公室购买计算机会计分录,购买办公用品属于什么会计科目
  13. Web地图服务、WMS 请求方式、网络地图服务(WMS)的三大操作
  14. TesterHome android app 编写历程(五)
  15. 计算机控制系统中a d是什么,计算机控制系统中,()代表模拟量输出。A、AIB、AOC、DID、DO - 试题答案网问答...
  16. Unity3D for Android 纹理压缩支持
  17. 如何一键生成字幕,如何快速处理生肉资源?借助whisper语音识别系统生成.srt字幕文件 手把手教学在Windows、CPU版本下whisper的安装与使用,快速上手!
  18. 从两张Excel表格中筛选相同的值
  19. 抖音流量密码时间段,一天中这个时候发推荐几率大
  20. python将excel导入生成矩阵

热门文章

  1. 2021-04-11
  2. 【Python学习笔记】复习sql主键外键索引
  3. c语言scanf用法
  4. Linux 查看日志命令tail的用法
  5. matlab imrotate中心,MATLAB imrotate函数的用法
  6. 单路电压表c语言编程,基于ADC0809和AT89S52单片机的数字电压表的设计
  7. 基于linkboy+GD32编程实现多种屏幕显示效果(LCD1602、LCD12864、彩屏)
  8. xp计算机字体在哪,Windows XP系统字体库在哪-如何安装新字体
  9. 基于 OS X Mavericks 系统
  10. cad解除块的快捷命令_cad分解块的快捷命令